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会自动处理它是否被选中当页面加载:)
有什么特别的理由downvotes? – PaReeOhNos 2014-09-06 11:07:53