在Rails 4/Ruby2.1中,我尝试这样做:
@user.submissions.where(:submission_codes_array => valid_submission_codes_array).count类似于当您希望查看:id如果在一个可能的值数组中(即.where(:id => valid_ids),除非在本例中检查特定属性(这是postgres数组类型)是否包含可能值集合中的任何值时),然后对其进行计数。
有什么想法吗?
发布于 2014-07-22 07:01:06
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喜欢的表单,因此您需要对其进行一些调整。
https://stackoverflow.com/questions/24879791
复制相似问题