module ActiveModelCachers::Hook::Associations

Public Instance Methods

delete_count(method, scope) click to toggle source
Calls superclass method
# File lib/active_model_cachers/hook/associations.rb, line 8
def delete_count(method, scope)
  if method == :delete_all
    # TODO:
  else # nullify
    call_hooks{ scope.pluck(:id) }
  end
  super
end
delete_records(records, method) click to toggle source
Calls superclass method
# File lib/active_model_cachers/hook/associations.rb, line 17
def delete_records(records, method)
  case method
  when :destroy
  when :delete_all
    # TODO:
  else
    call_hooks{ records.map(&:id) }
  end
  super
end

Private Instance Methods

call_hooks(&get_ids) click to toggle source
# File lib/active_model_cachers/hook/associations.rb, line 30
def call_hooks(&get_ids)
  ids = nil
  get_ids_with_cache = ->{ ids ||= get_ids.call }
  ActiveModelCachers::ActiveRecord::Extension.global_callbacks.on_nullify.exec(
    self,
    reflection.klass,
    reflection.foreign_key,
    get_ids_with_cache,
  )
end