[英]Rails query comparing against Postgres Array Column
所以我在表t.text "foo", default: [], array: true
有此列t.text "foo", default: [], array: true
我在帮助文件中有这个数组列表,
module HelperData
Helper_array = [
"data_1",
"data_2",
"data_3",
"data_4",
"data_5"
]
end
在FooName.rb
模型内部,有一行include HelperData
。
因此,根据本《 Postgres指南》 ,我要传递的查询是在比较PG数组时包含运算符&&
。
我已经尝试了以下查询:
FooName.where("foo" && HelperData::Helper_array)
。 此查询返回错误ActiveRecord::StatementInvalid: PG::SyntaxError: ERROR:
。 语法错误与HelperData::Helper_array
的元素HelperData::Helper_array
。 我有一点预感,这是因为Foo
是:text
但是Helper_array
的数据是string
,尽管我不确定。
FooName.where("foo && HelperData::Helper_array")
。 此查询返回错误ActiveRecord::StatementInvalid: PG::UndefinedColumn: ERROR:
。 显然,这只是错误的语法。
什么是正确的查询来查找是否foo
阵列具有与重叠的任何元素Helper_array
,并将所有FooName
已经重叠元素的对象?
尝试:
FooName.where("foo && ARRAY[?]::text[]", HelperData::Helper_array)
请参阅此链接https://www.postgresql.org/docs/current/static/functions-array.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.