class ActiveRecord::QueryMethods::HstoreChain

Store chain for hstore columns.

Public Instance Methods

contains_values(*values) click to toggle source

Contains values

Example

Model.create!(name: 'first', store: {a: 1, b: 2})
Model.create!(name: 'second', store: {b: 1, c: 3})

Model.store(:store).contains_values(1, 2).all #=> [Model(name: 'first', ...)]
# File lib/pgrel/active_record/store_chain/hstore_chain.rb, line 26
def contains_values(*values)
  update_scope("avals(#{quoted_store_name}) @> ARRAY[?]", values.map(&:to_s))
end
overlap_values(*values) click to toggle source

Overlap values

Example

Model.create!(name: 'first', store: {a: 1, b: 2})
Model.create!(name: 'second', store: {b: 1, c: 3})

Model.store(:store).overlap_values(1, 2).all
#=>[Model(name: 'first', ...), Model(name: 'second')]
# File lib/pgrel/active_record/store_chain/hstore_chain.rb, line 15
def overlap_values(*values)
  update_scope("avals(#{quoted_store_name}) && ARRAY[?]", values.map(&:to_s))
end