Sono nuovo di RoR e sto ancora giocando con le associazioni. Ho bisogno di avere due riferimenti a un modello particolare in un altro modello. Il codice scaffolded non funziona e ottengo un errore "costante non inizializzata".Associazione Rails per due chiavi esterne per lo stesso tavolo in una tabella
comandi generata in:
script/generate scaffold BaseModel name:string
script/generate scaffold NewModel name:string base1:references base2:references
db:migrate
modelli generati:
class NewModel < ActiveRecord::Base
belongs_to :base1
belongs_to :base2
end
e
class BaseModel < ActiveRecord::Base
has_many :new_models # I added this line
end
Quando provo a creare un Nuovo_modello a /new_models/new
, ho provato sia l'ID e il nome del BaseModel ma non funziona. L'errore che ottengo è:
uninitialized constant NewModel::Base1
ho indovinato mappa i nomi, in modo da creare nel mio metodo, ho cercato di impostare in modo esplicito le istanze 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
c'è qualcosa che mi manca?