2013-05-05 96 views
0

試圖將4個複選框的值保存到名爲reminders的列中我的故障單型號。Rails - 保存複選框值

但是,或者這些值沒有被保存,或者當我回去編輯這個「Ticket」時,它不能從數據庫中提取數據並正確顯示true/false值。

有什麼建議嗎?

/tickets/_form.html.erb

<%= form_for(@ticket) do |f| %>  

<div> 
    <% [ 'S.T.A.R.T', 'E.N.D.E.D', 'URGENT' , 'Repeat Request' ].each do |reminder| %> 
    <br><%= check_box_tag 'reminders', reminder, (params[:reminders] || {}).include (reminder) %> 
    <%= reminder.humanize %> 
    <% end %> 
</div> 

<div class="actions"> 
    <%= f.submit %> 
</div> 

<% end %> 

回答

-1

而不是使用check_box_tag你的方式,將其更改爲使用由提供的form_for表單生成器對象。它會確保複選框的名稱是正確的,這是你的問題(我認爲)。

因爲您沒有使用它,所以複選框可能會採用與Rails期望看到的名稱不同的名稱,所以當您提交表單時,參數名稱將不會與您的記錄相關聯,從而贏得不會改變。嘗試使用

<%= f.check_box_tag :reminder %> 

Rails會自動處理它是否被選中當頁面加載:)

+0

有什麼特別的理由downvotes? – PaReeOhNos 2014-09-06 11:07:53