我有一个Campaign模型,我希望用户能够检查每个状态的复选框,我希望将其存储在一个字段中的一个数组中,如["CA", "NY", "OH", "FL"]
。
我不确定序列化是否是正确的术语。我有一些表单字段生成如下:
<% State::NAMES.each do |state| %>
<%= check_box("states_allowed", state[1], :checked => true) %>
<label for="states_allowed_<%= state[1] %>"><%= state[0] %></label>
<% end %>
其中State::NAMES
只是一个州名和缩写数组。
所以这给了我HTML:
...
<input type="hidden" value="0" name="states_allowed[NE]"><input type="checkbox" value="1" name="states_allowed[NE]" id="states_allowed_NE">
<label for="states_allowed_NE">Nebraska</label>
...
但是如何保存支票字段呢?列内容保持为空,我没有收到错误。
我尝试的是将serialize :states_allowed
放在Campaign
模型中,但没有运气。
答案 0 :(得分:0)
我今天添加了同样的问题,看来表单未在视图中正确构建。 我只是在创建操作开始时添加:
params[:campaign][:states_allowed] = params[:states_allowed]
它运作正常