1

デフォルトでは、nested_form_fields gem は、指定されたアソシエーション jsut の既存のすべてのレコードを<% = f.nested_fields_for %>タグの下にレンダリングします。

問題は、nested_form_fields をモデルの名前によるグループ化 ( MyModel.all.group_by(&:name)) と組み合わせて、各グループがその特定のグループのみに属するレコードを表示する方法です。

-@product_categories.each do |category|
  %h3= category.name
  =f.add_nested_fields_link :products, 'Add Product'
  -category.products.each do |product|
    = f.nested_fields_for :products, product, legend: 'Product' do |product_form|
      = product_form.text_field :name
4

1 に答える 1

0

内側のループでこれらの製品をループする必要はありません。カテゴリに多くの製品がある場合、できること

- @product_categories.each do |category|
  %h3= category.name
  = form_for category do |f|
    = f.add_nested_fields_link :products, 'Add Product'
    = f.nested_fields_for :products, legend: 'Product' do |product_form|
      = product_form.text_field :name

編集:フォームが1つだけ必要な場合は、次のような多くのカテゴリを持つ上位レベルのオブジェクトを使用できます。

= form_for @object_with_categories do |f|
  = f.fields_for :categories do |f_cat|
    %h3= f_cat.object.name
    = f_cat.add_nested_fields_link :products, 'Add Product'
    = f_cat.nested_fields_for :products, legend: 'Product' do |product_form|
       = product_form.text_field :name
于 2015-04-24T12:04:21.010 に答える