2013-01-03 109 views
1

我有一個表格,每個人都有嵌套的fields_for表單。我們的想法是,用戶可以使用複選框選擇要添加到預訂哪個人嵌套模型的複選框字段

<%= form_for(@booking) do |f| %>  
    <% people.each do |person| %> 
    <%= f.fields_for :appointments do |builder| %> 
     <p>          
     <%= builder.hidden_field :event_id, :value => @event.id %> 
     <%= builder.check_box :person_id, :value => person.id %> 
     </p> 
    <% end %> 
    <% end %> 
<% end %> 

麻煩的是,該複選框值始終爲「1」如果我更換text_field check_box,我得到的所有字段顯示正確,具有正確的值,並通過表單提交以創建預訂。

我怎樣才能得到check_box字段顯示與person.id不是1的值?

回答

4

您正在向check_box helper function傳遞不正確的參數。

試試這個:

<%= builder.check_box :person_id, {}, person.id %> 
+0

酷。謝謝!所以check_box(object_name,方法,選項= {},checked_value =「1」,unchecked_value =「0」)我還是不太明白這兩者是如何排隊的,但是你有什麼對我有用。 – Will

+0

基本上我上面只是當你創建'builder'對象時,Rails視圖助手給你的語法糖。實際調用的方法是我鏈接的文檔中的方法。 –

+2

好的,謝謝 - 它很好的嘗試和理解,而不僅僅是修復東西。非常感謝您的幫助 :) – Will