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

Как осуществить фильтрацию поля, сохраненного из 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
  • Вопрос задан
  • 2471 просмотр
Подписаться 3 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Code Basics
    Ruby для начинающих
    1 месяц
    Далее
  • Skillbox
    Ruby on Rails с нуля
    10 месяцев
    Далее
  • Хекслет
    Разработчик на Ruby on Rails
    5 месяцев
    Далее
Решения вопроса 1
@himik
неверно спроектировано. или используйте отдельную таблицу для хранения годов, или БД, поддерживающую массивы нативно, постгрес например
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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