2013-07-28 74 views
0

我試圖在Rails中創建一個表單,允許用戶使用複選框從較大的列表中選擇某些照片。不幸的是,我還沒有找到任何類似的例子,大多數帖子都沒有幫助。有關如何解決這個問題的任何想法?在每個循環中使用Form_for

<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> 
+0

您的片段包含一些_egregious_格式化/縮進不一致,你的代碼是否正確渲染其中的一些可能承擔產生重大影響。例如,儘管「」標籤沒有結束標籤,但您已在「」標籤內縮進了「」。爲了清晰起見,請重新格式化您的代碼並重新發布。 – zeantsoi

回答

0

API docs指出,一個form_for

創建一個窗體,並圍繞一個特定的模型對象範圍

所以,你不能用一個集合使用。

一個可能的方法是使用form_tag而不是form_for和(您已經擁有)。

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> 
+0

嗯,這仍然沒有爲我工作#「

+0

啊,是的,我有一個小錯字,我糾正了。而不是傳遞'p.url'作爲URL隱藏字段的值,而是傳遞'photo.url'。請告知是否解決問題。 – zeantsoi

+0

這有什麼好運氣? – zeantsoi