Class: ActiveRecord::QueryMethods::HstoreChain

Inherits:
KeyStoreChain show all
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

Methods inherited from KeyStoreChain

#any, #key, #keys

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