1

默认情况下,nested_form_fields gem 会在<% = f.nested_fields_for %>标签下呈现指定关联 jsut 的所有现有记录。

问题是如何将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

编辑:如果您只想要一种形式,您可以使用具有许多类别的更高级别的对象,例如:

= 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 回答