Задать вопрос

Как осуществить фильтрацию поля, сохраненного из select multiple?

Добрый день!

В модели Person есть свойство year. При редактировании модели это поле заполняется из
<%= f.select(:pdate, (@years), {:include_blank => false}, {:multiple => true}) %>

В модели указано
serialize :year;
В базе всё отлично сохраняется в виде YAML:
---
- '2014'
- '2011'


Вопрос: как в active record теперь фильтровать по одному из значений этого поля? Скажем, мне нужны все люди, участвовавшие в 2011-м году. Сейчас я делаю так:
@year = 2011.to_s
@people = Person.where('year like ?', "%#{@year}%").all


Есть ли какой-то более правильный способ?
Версия rails — 3.2.17
  • Вопрос задан
  • 2470 просмотров
Подписаться 3 Оценить Комментировать
Решения вопроса 1
@himik
неверно спроектировано. или используйте отдельную таблицу для хранения годов, или БД, поддерживающую массивы нативно, постгрес например
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
OTKLIK POWER Москва
от 80 000 до 150 000 ₽
Netwrk Буэнос-Айрес
от 5 000 до 7 500 $
от 6 000 до 8 000 $