Ruby on rails 对每个循环使用表单_
我正在尝试在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="<%=
<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>