如何使用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
答案 0 :(得分:3)
您提供的一些代码是合适的,因为您要求的代码应该自动生效。
class Parent < ActiveRecord::Base
has_many :children
end
class Child < ActiveRecord::Base
belongs_to :parent
end
如果您的代码与此类似,请发布更具体的问题。
编辑:
您的Product
模型是否有任何验证?它们不会传递上面的代码,也不会检查create
的返回值,因此您永远不会知道。
答案 1 :(得分:3)
您可以使用acts_as_tree
:http://github.com/rails/acts_as_tree