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 に答える