У меня есть модель вызова рельсов MentorData, и она имеет атрибут os_usage
. Озы хранятся в таком массиве, как ['apple', 'linux']
.Как я могу запросить данные Rails ActiveRecord, хранящиеся в массивах
Резюмируя:
$ MentorData.first.os_usage
=> ['apple', 'linux']
Я ищу, чтобы иметь возможность запрашивать данные для всех MentorData, что включает в os_usage из apple
, но когда я ищу MentorData.where(os_usage: 'apple')
я получаю только наставники, которые могут использовать только яблоко и не яблоко и linux. Мне нужно каким-то образом найти, что проверяет, включено ли яблоко в массив.
Я также пробовал следующее.
MentorData.where('os_usage like ?', 'apple’)
MentorData.where('os_usage contains ?', 'apple’)
MentorData.where('os_usage contains @>ARRAY[?]', 'apple')
Возможно ли запрашивать данные в ActiveRecord с помощью атрибутов, имеющих массив или элементы?
База данных находится в Postgres, если это помогает в предоставлении более грубого поискового запроса.
Путеводители Rails расскажут, как это сделать, и многих других Postgr Операции, специфичные для eSQL: http://edgeguides.rubyonrails.org/active_record_postgresql.html –