在ActiveRecord中,可以使用where方法和PostgreSQL的数组查询语法来查询数组字段。以下是一个示例:
假设有一个名为User的模型,并且有一个名为interests的数组字段,存储用户的兴趣爱好。我们想要查询兴趣包含"篮球"的用户。
class User < ApplicationRecord
end
使用where方法和PostgreSQL的数组查询语法,可以这样查询:
User.where("'篮球' = ANY (interests)")
其中'篮球' = ANY (interests)是PostgreSQL的数组查询语法,意思是在interests数组中查找包含"篮球"的元素。
另外,如果要查询兴趣包含多个值的用户,可以使用ALL关键字。例如,查询兴趣既包含"篮球"又包含"足球"的用户:
User.where("'篮球' = ALL (interests) AND '足球' = ALL (interests)")
上述代码中,'篮球' = ALL (interests) AND '足球' = ALL (interests)意思是在interests数组中同时查找包含"篮球"和"足球"的元素。
希望以上解决方法对你有帮助!
上一篇:ActiveRecord belongs_to关联中的id并不总是设置
下一篇:ActiveRecord::ConnectionNotEstablished: ActiveRecord::Base没有与Mongoid建立连接池。