Как осуществить фильтрацию поля, сохраненного из 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 просмотров
Решения вопроса 1
@himik
неверно спроектировано. или используйте отдельную таблицу для хранения годов, или БД, поддерживающую массивы нативно, постгрес например
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы