Как хранить дни недели в формате CSV в строковом поле? - PullRequest
0 голосов
/ 26 февраля 2011

Мое намерение состоит в том, чтобы отобразить 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 Ответ

1 голос
/ 26 февраля 2011

Вы могли бы сделать

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

Вы не должны давать (троичное) условие, потому что .include?возвращает true или false

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...