Rails - 保存复选框值

问题描述:

试图将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 %> 

而不是使用check_box_tag你的方式,将其更改为使用由提供的form_for表单生成器对象。它会确保复选框的名称是正确的,这是你的问题(我认为)。

因为您没有使用它,所以复选框可能会采用与Rails期望看到的名称不同的名称,所以当您提交表单时,参数名称将不会与您的记录相关联,从而赢得不会改变。尝试使用

<%= f.check_box_tag :reminder %> 

Rails会自动处理它是否被选中当页面加载:)

+0

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