Я создаю поисковую версию списков курсов моего университета, и я не уверен, как использовать флажки, чтобы позволить пользователям фильтровать классы по дням недели.Например, если пользователи хотят видеть только те классы, которые встречаются в понедельник и среду, они отмечают поля «M» и «W».
У меня уже все работает, но свыпадающее меню (в котором они могут выбрать один день недели), а не с флажками.
курсы http://img90.imageshack.us/img90/8626/courses.jpg
Вот как это работает:
Каждый раз, когда пользователь нажимает кнопку «поиск», я создаю новый объект поиска (который имеет атрибуты, такие как class_name), инструктор, день и т. д.) и отображать только те курсы, атрибуты которых соответствуют отправке формы.То есть, если пользователь выбирает «M», я показываю эти курсы с «MWF», «MW» и т. Д. Вот мой код просмотра:
<td><%= f.select :day, [['Any', nil],['M', 'M'], ['T', 'T'], ['W', 'W'], ['Th', 'Th'], ['F', 'F']] %></td>
А вот часть моего кода модели поиска:
def courses
@courses ||= find_courses
end
def find_courses
Course.find(:all, :conditions => conditions)
end
def day_conditions
["courses.day LIKE ?", "%#{day}%"] unless day.blank?
end
Как можно использовать флажки вместо выпадающего меню для фильтрации по дням?Я хочу, чтобы пользователи отметили, например, «M» и «W», которые будут отображать классы с «MW» и «MWF», но не «MT».
В настоящее времяатрибут my: day - это строка.Мне нужно изменить его на массив?Если так, как я могу добавить массив в мою таблицу sqlite?«Массив» не является типом данных.
Я знаю, что задаю более открытый вопрос здесь.Пожалуйста, дайте мне знать, если будет полезно больше информации.Спасибо!
РЕДАКТИРОВАТЬ: следовал совету Клочнера, но все еще не уверен, как настроить мою форму, чтобы флажки формировали массив.Вот мой (плохой) код:
<td><%= fields_for @search do |form| %>
M: <%= form.check_box :day, {}, 'M', '' %>
T: <%= form.check_box :day, {}, 'T', '' %>
W: <%= form.check_box :day, {}, 'W', '' %>
Th: <%= form.check_box:day, {}, 'Th', '' %>
F: <%= form.check_box :day, {}, 'F', '' %>
<% end %>
Мне бы хотелось, чтобы, если пользователь нажимает M и W, дни = [M, W] передаются в мою модель поиска.Прямо сейчас этот код явно неверен, так как он просто выбирает значения из последней строки (F: ...).Я потратил кучу денег на ответ, но до сих пор ничего не могу найти.Должен ли я использовать fields_for здесь?