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

您描述的行为绝对不可能使用form_form. 但是,如果您愿意放弃form_for(根据您的标准,没有理由不放弃),您可以模仿在 a 中嵌套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 回答
1

API 文档指出form_for

围绕特定模型对象创建表单和范围

因此,您不能将它与集合一起使用。

一种可能的方法是使用form_tag而不是form_forcheck_box_tag(您已经拥有)。

于 2013-07-28T00:37:52.257 回答