Ruby on rails 对每个循环使用表单_

Ruby on rails 对每个循环使用表单_,ruby-on-rails,erb,Ruby On Rails,Erb,我正在尝试在Rails中创建一个表单,允许用户使用复选框从更大的列表中选择某些照片。不幸的是,我还没有发现任何类似的例子,大多数帖子都没有帮助。有没有办法解决这个问题 <div> <%= form_for :photos, url: trip_path, method: "PUT" do |f| %> <% @photos.each_with_index do |image, index|%> <img src="<%=

我正在尝试在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>
声明

围绕特定模型对象创建窗体和范围

因此,不能将其用于集合


一种可能的方法是使用form_标记,而不是form_,并选中您已有的\u box_标记。

您描述的行为绝对不可能使用form_标记。但是,如果您愿意放弃form_for,并且没有理由不这样做,根据您的标准,您可以通过在form_标记中嵌套foreach循环(每个循环包含一个form_for block)来模拟所描述的行为:


您的代码片段包含一些令人震惊的格式/缩进不一致,其中一些可能对代码是否正确呈现产生重大影响。例如,您已经缩进了标记的内部,尽管标记没有结束标记。为了清楚起见,请重新格式化您的代码并重新发布。嗯,这对我来说仍然不起作用,因为我得到了一个未定义的“url”方法。啊,是的,我有一个小错误,我已经更正了。与其传递p.url作为url隐藏字段的值,不如传递photo.url。请告知这是否解决了问题。
<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>