通常人们制作嵌套形式,其中嵌套属性被“属于”主要对象的对象接受......
例如:
class Brand < ActiveRecord::Base
has_many :models
end
class Model < ActiveRecord::Base
belongs_to :brand
end
因此,鉴于上述情况,人们可能期望为品牌制作一个嵌套表单,该表单接受模型的嵌套属性。
这听起来可能很荒谬,但我想做的是为模型创建一个表单,它接受品牌的嵌套属性……这可能吗?
通常人们制作嵌套形式,其中嵌套属性被“属于”主要对象的对象接受......
例如:
class Brand < ActiveRecord::Base
has_many :models
end
class Model < ActiveRecord::Base
belongs_to :brand
end
因此,鉴于上述情况,人们可能期望为品牌制作一个嵌套表单,该表单接受模型的嵌套属性。
这听起来可能很荒谬,但我想做的是为模型创建一个表单,它接受品牌的嵌套属性……这可能吗?
是的你可以。
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"}
}
}