繁体   English   中英

在Array Rails ActiveRecord / SQL中选择数组元素所在的行

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM