所以我在表格中有这个列
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
行。
因此,我希望传递的查询是包含运算符&&
,用于比较PG数组,基于此Postgres Guide。
我尝试了以下查询:
FooName.where("foo" && HelperData::Helper_array)
。此查询返回错误ActiveRecord::StatementInvalid: PG::SyntaxError: ERROR:
。语法错误与HelperData::Helper_array
中的元素有关。我有一个轻微的预感,因为Foo
是:text
,但Helper_array
中的数据是string
,但我无法确定。
FooName.where("foo && HelperData::Helper_array")
。此查询返回错误ActiveRecord::StatementInvalid: PG::UndefinedColumn: ERROR:
。显然这只是错误的语法。
查找foo
数组是否包含与Helper_array
重叠的元素,并返回具有重叠元素的所有FooName
个对象的正确查询是什么?
答案 0 :(得分:0)
尝试:
FooName.where("foo && ARRAY[?]::text[]", HelperData::Helper_array)
参考此链接 https://www.postgresql.org/docs/current/static/functions-array.html