2017-03-10 58 views

回答

2

找到问题

Model.where('array_in_db && ARRAY[?]::integer[]', [1,2,3]) 
的解决方案
-1

我相信最好的方法是使用重叠(& &)postgres算子来做你想做的事情。

看看这里的postgres文档 - https://www.postgresql.org/docs/9.1/static/functions-array.html

查询看起来会是对的台词:

SELECT * 
FROM table_name 
WHERE column && {value1,value2}; 

编辑:改善答案。

在ActiveRecord中,您可以使用简单的where子句调用构建该查询,或者更好地安装https://github.com/DockYard/postgres_ext gem以实现更轻松的集成。

如果您安装了Postgres的扩展的宝石,你可以简单地做:

Model.where.overlap(column: [value1, value2]) 
相关问题