我正在运行带有PG数据库的rails 4.2。
我有一个存储在数据库中的项目,例如(model Item
):
:something => ["1", "2", "3"]
我想获得Item.where(:something.include? => "3")
显然这不起作用 - 但是你打算如何在rails中做到这一点?
答案 0 :(得分:6)
根据documentation,这样的事情应该有效:
Item.where('something @> ARRAY[?]::varchar[]', ['3'])
答案 1 :(得分:2)
除@potashin答案外,如果您需要在一个元素上获取项目,还有一种较短的方法(参见documentation)。
# Items for a single something
Item.where("'3' = ANY (something)")
# Or using '?'
Item.where('? = ANY (something)', '3')
# Items for multiple something
Item.where('something @> ARRAY[?]::varchar[]', ['3', '4'])