【发布时间】:2015-11-29 23:39:58
【问题描述】:
我有一个名为 MentorData 的 rails 模型,它有一个名为 os_usage 的属性。 oses 存储在一个数组中,如 ['apple', 'linux']。
回顾一下:
$ MentorData.first.os_usage
=> ['apple', 'linux']
我希望能够查询所有 MentorData 的数据,其中包括 apple 的 os_usage,但是当我搜索 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 指南告诉您如何执行此操作,以及更多特定于 PostgreSQL 的操作:edgeguides.rubyonrails.org/active_record_postgresql.html
标签: sql ruby-on-rails ruby postgresql activerecord