0

我有一个具有如下关系的产品模型:

has_many :product_images
has_many :product_specs

这些关系运作良好,我对此感到高兴。

创建新产品时,我将控制器设置为在创建产品后保存 product_image 和 product_spec。问题是:我需要多个规格和产品图片。有没有办法在新产品的表单中添加多个 product_images 和多个 product_specs 并在创建产品时同时创建它们?此外,用户将决定他们需要添加多少图像和规格。

我感谢任何人的任何建议。

4

2 回答 2

1

我建议看一下nested formRyan Bates 的宝石。这正是您正在寻找的。

这是链接。它的 Railscasts 在这里

于 2013-02-08T18:51:24.703 回答
1

您应该更深入地阅读 ruby​​onrails api ;)链接

class Member < ActiveRecord::Base
  has_many :posts
  accepts_nested_attributes_for :posts
end

您现在可以通过属性散列设置或更新关联帖子模型的属性。

对于每个没有 id 键的散列,将实例化一条新记录,除非散列还包含评估为 true 的 _destroy 键。

params = { :member => {
  :name => 'joe', :posts_attributes => [
    { :title => 'Kari, the awesome Ruby documentation browser!' },
    { :title => 'The egalitarian assumption of the modern citizen' },
    { :title => '', :_destroy => '1' } # this will be ignored
  ]
}}

member = Member.create(params['member'])
member.posts.length # => 2
member.posts.first.title # => 'Kari, the awesome Ruby     documentation browser!'
member.posts.second.title # => 'The egalitarian assumption of the modern citizen'
于 2013-02-08T18:57:48.107 回答