【发布时间】:2021-04-07 09:39:13
【问题描述】:
我使用 Rails 6.1 和 gem simple_form。 我想在一个对象(字符串序列化或数组)中保存多个复选框的值。我没有找到简单的解决方案。
表格
class CreateSpots < ActiveRecord::Migration[6.0]
def change
create_table :spots do |t|
t.string :wind_direction
t.timestamps
end
end
end
_form.html.erb
<%= simple_form_for (spot) do |f| %>
<%= f.input :wind_direction, as: :check_boxes, collection: Spot::DIRECTION %>
<%= f.submit %>
<% end %>
型号
class Spot < ApplicationRecord
DIRECTION = ['N','NW','W','SW','S','SE','E','NE']
end
提交表单后,wind_direction 的输出为 Nil
理想情况下,我会寻找一个字符串,实际上我使用这种格式。
wind_direction: "[\"W\", \"NW\", \"N\", \"NE\", \"E\"]",
感谢您的任何建议
【问题讨论】:
-
也许这个page帮助
-
您共享的代码看起来不错,但是您是否在创建操作中正确访问了参数?
Spot.create(wind_direction: params[:spot][:wind_direction]) -
谢谢@Spikie,这很符合我的需要。
-
谢谢@DillonHafer,是的,参数很好
标签: ruby-on-rails forms checkbox simple-form ruby-on-rails-6