如何将其保存到数据库?
How Do I save it to the database?
我正在制作一个表单,其中包含值为 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 哈希中创建的数组。
提交时我没有收到任何错误,但是当我检查数据库时没有数组,也没有保存任何内容。
谁能帮帮我?
您正在更新对象属性,但正如您所说,没有将它们保存到数据库中。尝试:
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
我正在制作一个表单,其中包含值为 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 哈希中创建的数组。 提交时我没有收到任何错误,但是当我检查数据库时没有数组,也没有保存任何内容。 谁能帮帮我?
您正在更新对象属性,但正如您所说,没有将它们保存到数据库中。尝试:
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