palkan/pgrel

Add store update methods

Closed this issue · 0 comments

Examples:

  1. Delete hstore keys:
# before
Post.update_all(["labels = delete(labels, ARRAY[?])", id.to_s])

# after
Post.update_store(:labels).delete_keys(id)
  1. Merge hstore
# before
Post.update_all(["labels = hstore(labels) || hstore(ARRAY[:keys])",
                   keys: labels.map { |g, l| [g.to_s, l.to_s] }.flatten])

# after
Post.update_store(:labels).merge(labels)
  1. Delete pairs
Post.update_store(:labels).delete_pairs(labels)