我的产品型号有这样的关系:
has_many :product_images
has_many :product_specs
关系工作正常,我很高兴。
当我创建新产品时,我将控制器设置为在创建产品后保存product_image和product_spec。问题是:我需要多个规格和产品图片。有没有办法在新产品的表单中添加多个product_images和多个product_specs,并在创建产品时一次创建它们?此外,用户还可以决定需要添加多少图像和规格。
我感谢任何人的建议。
答案 0 :(得分:1)
答案 1 :(得分:1)
你应该更深入地阅读rubyonrails api;)link
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'