如何在字符串字段中将工作日存储为CSV?

时间:2011-02-26 01:19:43

标签: ruby-on-rails ruby-on-rails-3

我的目的是显示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。这是我尝试实现此方法的方式,但如果有更好的方法可以实现此目的,我可以使用这种方式..

1 个答案:

答案 0 :(得分:1)

你可以做到

:checked => (post.week_days.include? index.to_s)

你不必给予?(三元)条件,因为.include?返回true或false