我的目的是显示7个复选框,每周一天1,并以CSV格式将其保存在表格的单个字段中。 (因此,星期日,星期三将保存为字符串0,3
)
因此,我可以将所选工作日的CSV输入到该字段中。
但是当我编辑表单时,所有复选框都未选中。 如何根据字段中的CSV选择要选中的复选框?>
这就是我在表单中显示复选框的方式:
<% Date::DAYNAMES.each_with_index do |day,index| %>
<%= check_box_tag "post[week_days_#{index}]", index, false,
:name => "post[week_days][]" %>
<% end %>
输出是:
...
<input id="post_week_days_0" name="post[week_days][]" type="checkbox" value="0" />
<input id="post_week_days_1" name="post[week_days][]" type="checkbox" value="1" />
...
我想我必须更改下面的表单(添加了:checked
选项):
<%= check_box_tag "post[week_days_#{index}]", index, false,
:name => "post[_week_days][]",
:checked => (post.week_days.include? index ? true : false) %>
但是我如何让include?
起作用,因为该字段是一个字符串,我不知何故需要该字符串作为数组?
Ps。这是我尝试实现此方法的方式,但如果有更好的方法可以实现此目的,我可以使用这种方式..
答案 0 :(得分:1)
你可以做到
:checked => (post.week_days.include? index.to_s)
你不必给予?(三元)条件,因为.include?返回true或false