我在两个对象之间有一个父子关系。
Parent :has_many :children
Child :belongs_to :parent
创建新父级时,在同一个控制器中,我正在创建子级。
@mom = Parent.new
@child = Child.new
@mom.children << @child
这一切似乎都没问题,但是这个父母还有一个属性 - 这个父母有一个最喜欢的孩子
@mom.favorite_child = @child
这似乎应该可以工作,除了让我们说这是数据库中的第61个孩子,所以它获得了61的ID(我知道这发生了,因为当我检查数据库时,子记录有一个ID 61)。出于某种原因,当我将@child分配给父的“favorite_child”属性时,“favorite_child”被设置为“1” - 当我需要将它设置为“61”时。
线索?
答案 0 :(得分:2)
似乎父母需要像
这样的东西class Parent
has_many :children
has_one :favorite_child, :foreign_key=>'favorite_child_id', :class_name => 'Child'
否则,它不知道它是外键关系,并且您正在尝试将对象分配给整数。