Ich bin neu in RoR und spiele immer noch mit Assoziationen. Ich brauche zwei Referenzen auf ein bestimmtes Modell in einem anderen Modell. Der Gerüstcode funktioniert nicht und ich bekomme einen Fehler "nicht initialisierte Konstante".Rails Assoziation für zwei Fremdschlüssel für die gleiche Tabelle in einer Tabelle
Erzeugung Befehle:
script/generate scaffold BaseModel name:string
script/generate scaffold NewModel name:string base1:references base2:references
db:migrate
generiert Modelle:
class NewModel < ActiveRecord::Base
belongs_to :base1
belongs_to :base2
end
und
class BaseModel < ActiveRecord::Base
has_many :new_models # I added this line
end
Wenn ich versuche, eine new_model bei /new_models/new
zu schaffen, habe ich versucht, sowohl die ID und den Namen des BaseModel, aber es funktioniert nicht. Der Fehler, den ich bekommen ist:
uninitialized constant NewModel::Base1
Ich vermutete es die Namen abbildet, so in meiner Methode erstellen, habe ich versucht, explizit die Basemodel Instanzen auf:
@new_model = NewModel.new(params[:new_model])
@base1 = BaseModel.find(1) # this exists
@base2 = BaseModel.find(2) # this exists
@new_model.base1 = @base1 # This throws the same error as above
Gibt es etwas, ich bin fehlt?