Ich versuche, alle Beziehungen zwischen zwei Modellen zugreifen: Serie hat mehrere Kategorien und mehrere Kategorien können in verschiedenen Serien sein. Ist eine viele zu viele Beziehung.Rubin auf Schienen Beziehung funktioniert nicht
Ich versuche folgendes zu tun:
class SeriesController < ApplicationController
def category
@category = params[:category]
@series = []
Serie.all.each do |serie|
@serie.categories.all.each do |cat|
if @cat.category == @category
@series << @serie
end
end
end
end
end
Rails wirft mir diese Ausnahme:
undefined method `categories' for nil:NilClass
Hier sind die Modelle:
class Serie < ApplicationRecord
has_many :types
has_many :categories, through: :types
end
class Type < ApplicationRecord
belongs_to :serie
belongs_to :category
end
class Category < ApplicationRecord
has_many :types
has_many :series, through: :types
end
class CreateCategories < ActiveRecord::Migration[5.1]
def change
create_table :categories do |t|
t.string :category
t.timestamps
end
end
end
class CreateTypes < ActiveRecord::Migration[5.1]
def change
create_table :types do |t|
t.references :serie, index: true
t.references :category, index: true
t.timestamps
end
end
end
Ich weiß nicht, warum das funktioniert nicht.
Irgendeine Idee? Vielen Dank.