2

我有一个旅行中的旅行地点列表,我想编辑。旅行地点与我的旅行(旅行中的很多地点)相关联。在我的编辑表单中,我想将每个位置从 1 编号到 * 以供用户查看。我知道有一个名为 each_with_index 的选项。但这不适用于我,因为我需要使用 fields_for。

我在 SO (http://stackoverflow.com/questions/4853373/rails-fields-for-with-index) 上看到了一个解决方案,但是如果我在@trip 上使用 each_with_index,我只会算到 1(只有 1显然我的旅行编辑中的旅行)。如果我在其中使用 @trip.triplocations 和其中的 fields_for,我会得到 3 倍相同的输出(存在 3 个位置),这也不是我想要的。

我真正想要的是:

1 标题:DB 值 描述:DB 值

2 标题:DB 值 描述: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 的末尾修复它。但我相信其他人可以想出更好的方法,对吧?

4

0 回答 0