通常人们会创建嵌套表单,其中嵌套属性被“属于”主对象的对象接受...
例如:
class Brand < ActiveRecord::Base
has_many :models
end
class Model < ActiveRecord::Base
belongs_to :brand
end
因此,鉴于上述情况,人们可能希望为品牌制作一个嵌套形式,接受模型的嵌套属性。
这可能听起来很荒谬,但我想做的是创建一个模型表单,接受品牌的嵌套属性......这可能吗?
答案 0 :(得分:0)
是的,你可以。
class Brand < ActiveRecord::Base
has_many :models
end
class Model < ActiveRecord::Base
belongs_to :brand
accepts_nested_attributes_for :brands
end
在视图中生成
= form_for Model.new do |f|
%p
= f.label :name
= f.text_field :name
%p
Brands:
- 4.times do
= f.fields_for :brand, Brand.new do |bf|
= br.text_field :name
...
此表单将为此类品牌生成参数:
model: {
name: "Shiny Ann",
brands_attributes: {
"0": {name: "Brand1"},
"1": {name: "Brand2"},
"2": {name: "Brand3"}
}
}