有没有一种方法(或实现类似功能的方式)来实现fields_for_with_index
示例:
<% f.fields_for_with_index :questions do |builder, index| %>
<%= render 'some_form', :f => builder, :i => index %>
<% end %>
要呈现的部分需要知道fields_for
循环中的当前索引是什么。
发布于 2014-03-26 00:27:56
从Rails 4.0.2开始,FormBuilder对象中包含了一个索引:
https://api.rubyonrails.org/classes/ActionView/Helpers/FormBuilder.html#method-i-fields_for
例如:
<%= form_for @person do |person_form| %>
...
<%= person_form.fields_for :projects do |project_fields| %>
Project #<%= project_fields.index %>
...
<% end %>
...
<% end %>
发布于 2011-02-01 01:12:01
查看Rendering a collection of partials。如果您的需求是模板需要迭代数组并为每个元素呈现一个子模板。
<%= f.fields_for @parent.children do |children_form| %>
<%= render :partial => 'children', :collection => @parent.children,
:locals => { :f => children_form } %>
<% end %>
这将呈现“_children.erb”,并将局部变量“children”传递给模板以供显示。迭代计数器将自动提供给名称为partial_name_counter
表单的模板。在上面的示例中,模板将被馈送children_counter
。
希望这能有所帮助。
发布于 2019-09-09 08:40:12
已添加到fields_for child_index: 0
<%= form_for @person do |person_form| %>
<%= person_form.fields_for :projects, child_index: 0 do |project_fields| %>
<%= project_fields.index %>
<% end %>
<% end %>
https://stackoverflow.com/questions/4853373
复制相似问题