Reputation: 163
I am running rails 4.2, with a PG database.
I have an item stored in the database such as (model Item
):
:something => ["1", "2", "3"]
I would like to get the Item.where(:something.include? => "3")
Obviously this is not working - but how are you meant to do this in rails?
Upvotes: 5
Views: 1355
Reputation: 5484
In addition to @potashin answer, there is a shorter way to do (see documentation) if you need to get Items on one element.
# 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'])
Upvotes: 2
Reputation: 44611
According to documentation, something like this should work:
Item.where('something @> ARRAY[?]::varchar[]', ['3'])
Upvotes: 6