編集したいトリップのトリップロケーションのリストがあります。Triplocations は、私の旅行 (旅行の多くの場所) に関連付けられています。私の編集フォームでは、ユーザーが見られるように、すべての場所に 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 で修正しました。しかし、他の誰かがより良い方法を思い付くことができると確信していますよね?