Class: ActiveRecord::QueryMethods::HstoreChain
- Inherits:
-
KeyStoreChain
- Object
- StoreChain
- KeyStoreChain
- ActiveRecord::QueryMethods::HstoreChain
- Defined in:
- lib/pgrel/active_record/store_chain/hstore_chain.rb
Overview
Store chain for hstore columns.
Instance Attribute Summary
Attributes inherited from StoreChain
#quoted_store_name, #store_name
Instance Method Summary collapse
-
#contains_values(*values) ⇒ Object
Contains values.
-
#overlap_values(*values) ⇒ Object
Overlap values.
Methods inherited from KeyStoreChain
Methods inherited from StoreChain
#contained, #contains, #initialize, #not, #where
Constructor Details
This class inherits a constructor from ActiveRecord::QueryMethods::StoreChain
Instance Method Details
#contains_values(*values) ⇒ Object
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', ...)]
26 27 28 |
# 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) ⇒ Object
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')]
15 16 17 |
# 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 |