rosa-build/app/models/event_log.rb

36 lines
1007 B
Ruby

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.controller = current_controller.class.to_s
el.action = current_controller.action_name
el.protocol = (el.controller == 'RpcController' ? 'api' : 'web')
end
end
def current_controller
Thread.current[:current_controller]
end
def current_controller=(ctrl)
Thread.current[:current_controller] = ctrl
end
end
end