0
我有两个对象之间的父子关系。为什么我的新ID始终为“1”
Parent :has_many :children
Child :belongs_to :parent
当创建一个新的父母,在同一个控制器中,我创建了孩子。
@mom = Parent.new
@child = Child.new
@mom.children << @child
这一切似乎去还好,但这位家长多了一个属性 - 这家长有一个最喜欢的孩子
@mom.favorite_child = @child
好像这应该工作,除了让我们说,这是第61届的孩子在数据库中,所以它的ID是61(我知道这是发生的,因为当我检查数据库时,子记录的ID为61)。出于某种原因,当我将@child分配给父母的“favorite_child”属性时,“favorite_child”被设置为“1” - 当我需要将其设置为“61”时。
线索?
哦,等等,我有我的关系倒退 - 我有'favorite_child_id'字段作为父类的属性 - 但它应该是另一种方式,因为外键属于类与'belongs_to ' 宣言。 – jefflunt 2010-04-27 02:54:38
我在代码中添加了一个外键说明符。我不认为你有后退 – 2010-04-27 03:24:58
孩子确实被添加到儿童列表中,但'favorite_child_id'字段现在保持空白。 我几乎认为在Child类中我需要类似于“belongs_to:parent_that_favors_me,:class_name =>'Parent'以及 我会一直插手,或者完全没有尝试这种思路。 – jefflunt 2010-04-27 04:15:43