ruby-on-rails - 如何将其保存到数据库中?
问题描述
我正在制作一个表单,其中包含值为真或假的复选框。
<%= 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 时没有数组并且没有保存任何内容。谁能帮帮我?
解决方案
您正在更新对象属性,但正如您所说,没有将它们保存到数据库中。尝试:
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
在重定向之前添加一个
推荐阅读
- python - pandas DataFrame 中的点符号是如何实现的?
- javascript - 正则表达式在 Internet Explorer 中不起作用。货币字段在 chrome 上工作,但我无法在 IE 中输入任何数字
- c# - 如何在 C# 中使用语句引用数组
- java - 无法使用 Spring-Boot 应用程序从 GKE 连接到 Cloud SQL (MySQL)
- java - 在Android中将问题mm转换为像素
- python - 使用 for 循环构建 matplots 数据帧的多个图
- vb.net - 获取两个选定日期之间的所有日期
- html - Vuetify v-data-table 固定标题不起作用
- c# - 脚本完成后PHP进程不会退出
- authentication - 用于无浏览器客户端的 OIDC