1

ユーザーがチェックボックスを使用してより大きなリストから特定の写真を選択できるようにするフォームをRailsで作成しようとしています。残念ながら、私は同様の例を見つけておらず、そこにあるほとんどの投稿は役に立たない. これを解決する方法についてのアイデアはありますか?

 <div>
  <%= form_for :photos, url: trip_path, method: "PUT"  do |f| %>
  <% @photos.each_with_index do |image, index|%>    
    <img src="<%= image.url %>" ><br>
      <span> <%=image.caption%> | <%=image.lat  %> | <%= image.long  %>
        <%= f.hidden_field "url", :value => image.url %>
        <%=check_box_tag('photo')  %>
      </span>
    <% end %>
    <%= f.submit 'Submit'  %>
  <% end %>
</div>
4

2 に答える 2

1

API ドキュメントには、form_for

特定のモデル オブジェクトの周りにフォームとスコープを作成します

したがって、コレクションでは使用できません。

それを行う可能な方法は、 (すでに持っている)andのform_tag代わりにを使用することです。form_forcheck_box_tag

于 2013-07-28T00:37:52.257 に答える
1

あなたが描いた行動は、 を使用することは絶対に不可能form_formです。ただし、放棄しても構わないと思っている場合form_for(そして、基準を考えると、そうすべきではない理由はありません)、foreachループをネストすることによって描写される動作を模倣できます (各ループにはform_forブロックが含まれますform_tag)。

<div>
    <%= form_tag trip_path, method: "PUT"  do |f| %>
        <% @photos.each do |photo|%>    
            <img src="<%= photo.url %>" ><br>
            <span> <%= photo.caption%> | <%= photo.lat  %> | <%= photo.long  %>
                <%= fields_for "photos[#{photo.id}]", photo do |p| %>
                    <%= p.hidden_field 'url', :value => photo.url %>
                    <%= p.check_box 'photo'
                <% end %>
            </span>
        <% end %>
        <%= f.submit 'Submit'  %>
    <% end %>
</div>
于 2013-07-28T02:56:55.430 に答える