0

只是试图将 4 个复选框的值保存到名为reminders我的门票模型的列中。

但是,要么没有保存值,要么当我回去编辑这个“票”时,它不能从数据库中提取数据并正确显示真/假值。

有什么建议吗?

/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 %>
4

1 回答 1

0

与其按照您的方式使用 check_box_tag,不如将其更改为使用 form_for 提供的表单构建器对象。它将确保复选框的名称正确,这是您的问题(我认为)。

因为您没有使用它,所以该复选框的名称可能与 rails 期望看到的名称不同,因此当您提交表单时,参数名称不会与您的记录相关联,因此不会更改. 尝试使用

<%= f.check_box_tag :reminder %>

Rails 会在页面加载时自动处理是否勾选 :)

于 2013-05-05T22:13:27.107 回答