我正在寻找一种将数组参数传递给pg_数组查询(https://www.postgresql.org/docs/8.2/static/functions-array.html)的方法。类似于:
Model.where("array_col && ?", ids)
&&-重叠
ids
=[2,3]array_col
是包含整数的数组,例如[1,2]当硬编码工作时:
Model.where("array_col && ARRAY[2,3]")
最佳答案
将pg_数组扩展加载到Sequel::Database对象(它附带Sequel),然后:
Model.where("array_col && ?", Sequel.pg_array(ids))
Sequel还附带了pg_array_ops扩展,允许您执行以下操作:
Model.where(Sequel.pg_array(:array_col).overlaps(ids))