算上fields_for

时间:2012-12-04 11:36:22

标签: ruby-on-rails-3 fields-for

我有一个旅行中的旅行记录列表,我想编辑。 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的末尾修复它。但我相信其他人可以提出更好的方法,对吗?

0 个答案:

没有答案