parent.children<<时自动设置child.parent_id儿童?

时间:2009-11-07 17:39:29

标签: ruby-on-rails activerecord

如何使用ActiveRecord执行此操作?我的代码:

p = Product.create
l = Label.create
p.labels.add << l

但我得到l.parent == nil

  create_table "labels", :force => true do |t|
    t.integer  "product_id"
  end

2 个答案:

答案 0 :(得分:3)

您提供的一些代码是合适的,因为您要求的代码应该自动生效。

class Parent < ActiveRecord::Base
  has_many :children
end

class Child < ActiveRecord::Base
  belongs_to :parent
end

如果您的代码与此类似,请发布更具体的问题。

编辑: 您的Product模型是否有任何验证?它们不会传递上面的代码,也不会检查create的返回值,因此您永远不会知道。

答案 1 :(得分:3)

您可以使用acts_as_treehttp://github.com/rails/acts_as_tree