Je suis nouveau à RoR et joue toujours avec les associations. J'ai besoin d'avoir deux références à un modèle particulier dans un autre modèle. Le code échafaudé ne fonctionne pas et j'obtiens une erreur "constante non initialisée".Rails d'association pour deux clés étrangères pour la même table dans une table
commandes de génération:
script/generate scaffold BaseModel name:string
script/generate scaffold NewModel name:string base1:references base2:references
db:migrate
modèles Generated:
class NewModel < ActiveRecord::Base
belongs_to :base1
belongs_to :base2
end
et
class BaseModel < ActiveRecord::Base
has_many :new_models # I added this line
end
Lorsque je tente de créer un new_model à /new_models/new
, j'ai essayé à la fois l'ID et le nom du BaseModel mais cela ne fonctionne pas. L'erreur que je reçois est:
uninitialized constant NewModel::Base1
Je l'aurez deviné cartes les noms, donc dans ma méthode de création, j'ai essayé de définir explicitement les instances de BaseModel:
@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
Est-ce que je suis absent?