我有3个表:animalstudies,especies和procedences,其中
animalstudy belongs_to especie
animalstudy has_many_procedences
especie has_many animalstudies
procedence belongs_to animalstudy
当我创建一个程序时,我可以将它与以这种方式从选择中拉出的预算相关联:
f.select :animalstudy_id, Animalstudy.all.collect(|as| [as.especie.name, as.id]}
我想在procdences视图(索引和显示)中显示选择的especie而不是id的名称。在控制台,我试图这样做:
p=Procedence.first
name = p.animalstudy.especie.name
它给了我这个错误:
NoMethodError: undefined method `especie' for nil:NilClass.
我哪里错了?
答案 0 :(得分:0)
记住它与许多人的关系,不要忘记has_many通过。
我认为这样做:
animalstudy
has_many :procedences
has_many :especies, through: procedences
especies
has_many :procedences
has_many :animalstudies, through: procedences
procedence
belongs_to :animalstudy
belongs_to :especie
也许这种关系更正确。见,请给我打分。