![](/img/trans.png)
[英]Rails - how to convert output of find_by_sql (array) to an ActiveRecord relation?
[英]Selecting rows where array elements in Array Rails ActiveRecord/SQL
在Rails 4 / Ruby 2.1中,我正在尝试执行以下操作:
@user.submissions.where(:submission_codes_array => valid_submission_codes_array).count
类似于您要查看:id
是否在可能值数组(即.where(:id => valid_ids)
,如果在这种情况下,检查特定属性(它是postgres数组类型)是否包含可能值集中的任何值,在这种情况下,将对其进行计数。
有任何想法吗?
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('"',"'"))
类的Model.where("submission_codes_array && ?", valid_submission_codes_array.to_s.gsub('"',"'"))
。 &&
运算符将检查两者之间是否存在重叠(也就是设置交集)这两个数组,如果我没看错文档的话。
注意,Active,ActiveRecord不会将数组序列化为Postgres喜欢的形式,因此您需要对其进行一些调整。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.