class ActiveRecord::Store::FlexibleJsonb

Public Instance Methods

delete_keys(*keys) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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