Module: JunkDrawer::BulkUpdatable

Defined in:
lib/junk_drawer/rails/bulk_updatable.rb

Overview

module to allow bulk updates for ‘ActiveRecord` models

Instance Method Summary collapse

Instance Method Details

#bulk_update(objects) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
# File 'lib/junk_drawer/rails/bulk_updatable.rb', line 11

def bulk_update(objects)
  objects = objects.select(&:changed?)
  return unless objects.any?

  if connection.prepared_statements
    build_and_exec_prepared_query(objects)
  else
    build_and_exec_unprepared_query(objects)
  end
  objects.each(&:changes_applied)
end