Class: ActiveRecord::Store::FlexibleJsonb
Instance Attribute Summary
#relation, #store_name
Instance Method Summary
collapse
#initialize
Instance Method Details
#delete_keys(*keys) ⇒ Object
6
7
8
9
10
11
|
# File 'lib/pgrel/active_record/store/flexible_jsonb.rb', line 6
def delete_keys(*keys)
keys.flatten!
query = +"#{store_name} = #{store_name}"
keys.length.times { query.concat(" - ?") }
relation.update_all([query, *keys])
end
|
#delete_pairs(pairs) ⇒ Object
17
18
19
20
21
22
|
# File 'lib/pgrel/active_record/store/flexible_jsonb.rb', line 17
def delete_pairs(pairs)
keys = pairs.keys
pairs = pairs.map { |k, v| {k => v} }
@relation = relation.where.store(store_name, *pairs)
delete_keys(keys)
end
|
#merge(pairs) ⇒ Object
13
14
15
|
# File 'lib/pgrel/active_record/store/flexible_jsonb.rb', line 13
def merge(pairs)
relation.update_all(["#{store_name} = #{store_name} || ?::jsonb", pairs.to_json])
end
|