目前我正在尝试在rails 3应用程序中选择两个数组有一些重叠的所有对象。
我尝试了以下内容:
Contact.where("possible_unique_keys && ?" c.possible_unique_keys)
给出了:
array value must start with "{" or dimension information
所以我尝试将后一条记录转换为postgresql数组,如下所示:
Contact.where("possible_unique_keys && string_to_array(?)", c.possible_unique_keys)
给出了:
operator does not exist: character varying[] && text[]
如何将两个数组都格式化为能够正确评估&&?
的格式答案 0 :(得分:1)
我想我现在已经解决了这个问题,想出了一种从Ruby数组构建查询到postgresql数组的方法(部分归功于这段代码written for rails/postgresql interoperability。) p>
给出一个字符串列表[" bill"," joe"," stu"," katie"," laura& #34;],我们必须做一些杂技方式才能让postgresql识别它们。这是构建请求的解决方案。
request = "SELECT * from Contacts where possible_unique_keys && \'{"
list.each do |key|
key.gsub("'", "\\'")
if key == c.possible_unique_keys.last
request << "\"#{key}\"}\'"
else
request << "\"#{key}\", "
end
end
dupes = Contacts.find_by_sql(request)