我有一个旅行中的旅行记录列表,我想编辑。 triplocations与我的旅行(旅行中的多个地点)相关联。在我的编辑表单中,我想为从1到*的每个位置编号,供用户查看。我知道有一个名为each_with_index的选项。但这不适用于我,因为我需要使用fields_for。
我在SO上看过一个解决方案(http://stackoverflow.com/questions/4853373/rails-fields-for-with-index)但是如果我在我的@trip上使用each_with_index我将只计数到1 (显然我的行程中只有一次旅行编辑)。如果我在每个和其中的fields_for使用@ trip.triplocations,我得到相同输出的3倍(存在3个位置),这不是我想要的。
我真正想要的是:
1 title:DB的值 description:DB的值
2 title:DB的值 description:DB的值
表单就像魅力一样,就像只有fields_for一样。但我只想念每个表格上方的计数。有人可以帮帮我吗?
这是我的旅行编辑表格:
<%= form_for(@trip) do |f| %>
<br> <br>
<%= f.label :title %><br />
<%= f.text_field :title %>
<br> <br>
<%= f.label :description %><br />
<%= f.text_area :description %>
<br> <br>
<%= f.fields_for :triplocations do |a| %>
<p class="locations">
<%= a.label :title, 'Titel:' %>
<%= a.text_field :title, :id => 'titleField' %>
<%= a.label :description, 'Omschrijving:' %>
<%= a.text_field :description , :id => 'descriptionField'%>
<%= a.hidden_field :latlng, :id => 'latlngField' %>
</p>
<div id="inputFields"></div>
<% end %>
<%= f.submit :value => "Route opslaan" %>
<% end %>
编辑:我现在通过基本的i = 1和在fields_for循环i = i + 1的末尾修复它。但我相信其他人可以提出更好的方法,对吗?