为什么我的新ID总是“1”

时间:2010-04-27 01:57:36

标签: ruby-on-rails activerecord

我在两个对象之间有一个父子关系。

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”时。

线索?

1 个答案:

答案 0 :(得分:2)

似乎父母需要像

这样的东西
class Parent
  has_many :children
  has_one :favorite_child, :foreign_key=>'favorite_child_id', :class_name => 'Child'

否则,它不知道它是外键关系,并且您正在尝试将对象分配给整数。