在Rails 4 / Ruby 2.1中,我试图做这样的事情:
@user.submissions.where(:submission_codes_array => valid_submission_codes_array).count
类似于你想要查看:id
是否在可能值的数组中的排序(即.where(:id => valid_ids)
,除了在这种情况下检查特定属性(这是一个postgres数组类型) )包括在可能值集合内的任何值,在这种情况下,它将被计算。
有什么想法吗?
答案 0 :(得分:0)
AFAIK,你不能通过ActiveRecord来实现,因为你只使用Postgres功能(也就是说,我不认为mysql支持你需要的功能)。
您可以在此处找到您想要的内容:http://www.postgresql.org/docs/8.2/static/functions-array.html
具体来说,您最终会得到Model.where("submission_codes_array && ?", valid_submission_codes_array.to_s.gsub('"',"'"))
之类的内容。如果我正确地阅读文档,&&
运算符将检查两个数组之间的重叠(也就是设置交集)。
请注意,唉,ActiveRecord没有将数组序列化为Postgres喜欢的形式,所以你需要调整一下。