Sha256: 66b729378037a214ef77c5d52133b9240a01dc4485aa3cc416e9a38d2186b6e0
Contents?: true
Size: 985 Bytes
Versions: 2
Compression:
Stored size: 985 Bytes
Contents
# frozen_string_literal: true module ActiveRecord module QueryMethods # Store chain for hstore columns. class HstoreChain < KeyStoreChain # 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')] def overlap_values(*values) update_scope("avals(#{quoted_store_name}) && ARRAY[?]", values.map(&:to_s)) end # 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', ...)] def contains_values(*values) update_scope("avals(#{quoted_store_name}) @> ARRAY[?]", values.map(&:to_s)) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
pgrel-0.3.1 | lib/pgrel/active_record/store_chain/hstore_chain.rb |
pgrel-0.3.0 | lib/pgrel/active_record/store_chain/hstore_chain.rb |