我正在制作一个带有复选框的值为true或false的表单。
<%= form_tag url_for(action: 'create'), method: "post" do %>
<tbody>
<tr>
<td class="image"> <%= image_tag("https://cdn.iris.nitk.ac.in/images/new_dashboard/button_Human.png", class: 'list_image') %></td>
<td>Profile</td>
<td><%= check_box_tag '1', true, true, :checked => true, data: {toggle: "toggle", on: "Yes", off: "No", onstyle: "success", offstyle: "danger"} %></td>
</tr>
<tr>
<td class="image"> <%= image_tag("https://cdn.iris.nitk.ac.in/images/new_dashboard/withdraw.png", class: 'list_image') %></td>
<td>Withdraw Admission</td>
<td><%= check_box_tag '2', true, true, :checked => true, data: {toggle: "toggle", on: "Yes", off: "No", onstyle: "success", offstyle: "danger"} %></td>
</tr>
<tr>
<td class="image"> <%= image_tag("https://cdn.iris.nitk.ac.in/images/new_dashboard/button_academics.png", class: 'list_image') %></td>
<td>Course Registration</td>
<td><%= check_box_tag '3', true, true, :checked => true, data: {toggle: "toggle", on: "Yes", off: "No", onstyle: "success", offstyle: "danger"} %></td>
</tr>
</tbody>
“ btn btn-primary btn-lg btn-block%>
提交后,我将在控制器中执行此创建操作。
def create
1.upto(13) do |i|
(params[:i] ? (current_user.misc_data[:pin_modules] ||= []) << i : next)
end
redirect_to '/'
结束 结束
其中pin_modules是我要在用户模型的misc_data哈希内部创建的数组。 提交时我没有收到任何错误,但是当我检查db时,没有数组,也没有保存任何内容。 有人可以帮我吗?
答案 0 :(得分:0)
您正在更新对象属性,但正如您所说的那样,不将它们保存到数据库中。试试:
def create
current_user.misc_data[:pun_modules] ||= []
(1..13).each do |i|
next unless params[:i]
current_user.misc_data[:pin_modules] << i
end
current_user.save
redirect_to '/'
end
或者,如果您想保留三元组,只需在重定向之前添加current_user.save