class EventLog < ActiveRecord::Base belongs_to :user belongs_to :object, :polymorphic => true # self.per_page = 1 scope :eager_loading, preload(:user) scope :default_order, order('id DESC') # order('created_at DESC') before_create do self.user_name = user.try(:uname) || 'guest' self.object_name ||= object.name if object.respond_to?(:name) end # after_create { self.class.current_controller = nil } class << self def create_with_current_controller(attributes) create(attributes) do |el| el.user = current_controller.current_user el.ip = current_controller.request.remote_ip el.protocol = 'web' # TODO pass protocol through controller or calculate by name el.controller = current_controller.class.to_s el.action = current_controller.action_name end end def current_controller Thread.current[:current_controller] end def current_controller=(ctrl) Thread.current[:current_controller] = ctrl end end end