0

通常人们制作嵌套形式,其中嵌套属性被“属于”主要对象的对象接受......

例如:

class Brand < ActiveRecord::Base
  has_many :models
end

class Model < ActiveRecord::Base
  belongs_to :brand
end

因此,鉴于上述情况,人们可能期望为品牌制作一个嵌套表单,该表单接受模型的嵌套属性。

这听起来可能很荒谬,但我想做的是为模型创建一个表单,它接受品牌的嵌套属性……这可能吗?

4

1 回答 1

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"}
  }
}
于 2012-04-09T03:37:06.137 回答