module ControllerActivityLogger

Public Instance Methods

clear_parent_activity_id(options = {}) click to toggle source
# File lib/activity_log/controller_activity_logger.rb, line 6
def clear_parent_activity_id(options = {})
  ModelActivityLogger.current_parent_activity_id = nil
end
record_activity_log(options = {}) click to toggle source
# File lib/activity_log/controller_activity_logger.rb, line 10
def record_activity_log(options = {})
  return unless params[options[:key] || :id].present?
  return if request.get? #exit if it's a get
  object = (options[:class] || controller_name).classify.constantize.find_by_id(params[options[:key] || :id])
  return unless object.present?
  return unless object.respond_to? :activity_logs

  data = params.deep_dup
  data[:password] = "[FILTERED]" if data[:password].present?

  ModelActivityLogger.current_parent_activity_id = object.activity_logs.create(user_id: current_user.try(:id), action: "#{data[:controller]}/#{data[:action]}", data: data, action_type: 'controller').id
end