Charles Skariah
Charles Skariah

Reputation: 670

Multiple days of week in one attribute in database

I want to implement a feature in Rails using the option of multiple checkbox. User must be able to choose the days in which he want the emails, like Monday, Tuesday, etc. This must be a list of checkboxes with day name as label and day index like 0 for Sunday, 1 for Monday, like that.

Also these fields must be checked when the user next time come here to edit. I don't want to create separate db field for each day. This can be an array of day index stored in one database field. I am using Rails version 4.

Date::DAYNAMES will give the list of week days. Date::DAYNAMES.each_with_index will give the list of days with its index. I want to know the best way to implement the same.

Upvotes: 2

Views: 814

Answers (1)

Hardik Upadhyay
Hardik Upadhyay

Reputation: 2659

Try this,

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

For using checkbox

<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>

Hope it's help you.

Upvotes: 5

Related Questions