Soy nuevo en RoR y sigo jugando con asociaciones. Necesito tener dos referencias a un modelo en particular en otro modelo. El código scaffolded no funciona y aparece un error de "constante no inicializada".Asociación de rieles para dos claves foráneas para la misma tabla en una tabla
comandos Generación:
script/generate scaffold BaseModel name:string
script/generate scaffold NewModel name:string base1:references base2:references
db:migrate
modelos de creación:
class NewModel < ActiveRecord::Base
belongs_to :base1
belongs_to :base2
end
y
class BaseModel < ActiveRecord::Base
has_many :new_models # I added this line
end
Cuando intento crear un new_model en /new_models/new
, me trataron tanto el ID y el nombre del BaseModel pero no funciona. El error que consigo es:
uninitialized constant NewModel::Base1
Supuse que mapea los nombres, así que en mi método de crear, traté de establecer explícitamente los casos 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
¿Hay algo que me falta?