Module: CustomActiveRecordObserver::Handler
- Defined in:
- lib/custom_active_record_observer/handler.rb
Class Method Summary collapse
Class Method Details
.call(target, action, _changes, schema: CustomActiveRecordObserver.schema) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 |
# File 'lib/custom_active_record_observer/handler.rb', line 3 def self.call(target, action, _changes, schema: CustomActiveRecordObserver.schema) # Some AR libraries reload AR object in the callbacks. # Hence, ActiveModel::Dirty model changes hash becomes empty. # @_active_record_observer_changes is needed to that changes not be missed changes = (target.instance_variable_get(:@_active_record_observer_changes) || {}).merge(_changes) ActiveRecord::Base.transaction do schema. get_rules(target.class.name, action, changes). each { |rule, handler| handler.(rule.(target)) } end end |