接受嵌套模型的嵌套属性

时间:2014-07-24 03:17:57

标签: ruby-on-rails

我有两种型号,资源和产品。

在product.rb中,我只是将关系定义为:

 belongs_to :resource

在resource.rb中,我将关系定义为:

has_many :products
accepts_nested_attributes_for :products, allow_destroy: true, update_only: true

当我尝试使用以下命令同时创建具有关联产品的资源时:

Resource.create({:name => "new resource", :capacity => 20, :store_id => 1, :products_attributes => [{:name => "new product", :description => "new description"}]})

不会自动指定产品型号下的:resource_id。我做错了什么?

1 个答案:

答案 0 :(得分:0)

您应该使用inverse_of,因为rails会尝试在数据库中存在之前运行验证

您可以在此处找到更好的解释:

http://kueda.net/blog/2012/09/04/validates_presence_of-and-accepts_nested_attributes_for/