数据库中一个属性的一周中的多天

Cha*_*iah 2 logic ruby-on-rails days ruby-on-rails-4

我想使用多个复选框的选项在 Rails 中实现一个功能。用户必须能够选择他想要电子邮件的日期,如星期一、星期二等。这必须是一个复选框列表,其中日期名称作为标签,日期索引如 0 代表星期日,1 代表星期一,诸如此类。

当用户下次来这里编辑时,也必须检查这些字段。我不想为每一天创建单独的 db 字段。这可以是存储在一个数据库字段中的日期索引数组。我正在使用 Rails 版本 4。

Date::DAYNAMES将给出工作日列表。Date::DAYNAMES.each_with_index将给出带有索引的天数列表。我想知道实现相同的最佳方法。

Har*_*yay 5

尝试这个,

<%=select_tag 'days[]', options_for_select(Date::DAYNAMES.zip((0..6).to_a), 
[selected days array goes here]
), :multiple => true%>
Run Code Online (Sandbox Code Playgroud)

用于使用复选框

<ul>
  <% Date::DAYNAMES.zip((0..6).to_a).each do |day| %>
      <li>
        <%= check_box_tag 'days[]', day[1], [selected days array].include?(day[1]) -%>
        <%= h day[0] -%>
      </li>
  <% end %>
</ul>
Run Code Online (Sandbox Code Playgroud)

希望对你有帮助。