2011-02-04 04:13:41 +00:00
|
|
|
class Impression < ActiveRecord::Base
|
|
|
|
belongs_to :impressionable, :polymorphic=>true
|
2011-10-29 22:24:57 +00:00
|
|
|
|
|
|
|
after_save :update_impressions_counter_cache
|
|
|
|
|
2012-03-12 20:34:01 +00:00
|
|
|
attr_accessible :impressionable_type, :impressionable_id, :user_id,
|
|
|
|
:controller_name, :action_name, :view_name, :request_hash, :ip_address,
|
|
|
|
:session_hash, :message, :referrer
|
|
|
|
|
2011-10-29 22:24:57 +00:00
|
|
|
private
|
|
|
|
|
|
|
|
def update_impressions_counter_cache
|
2011-10-31 17:02:31 +00:00
|
|
|
impressionable_class = self.impressionable_type.constantize
|
|
|
|
|
2011-10-31 18:18:46 +00:00
|
|
|
if impressionable_class.counter_cache_options
|
2011-10-31 17:02:31 +00:00
|
|
|
resouce = impressionable_class.find(self.impressionable_id)
|
|
|
|
resouce.try(:update_counter_cache)
|
|
|
|
end
|
2011-10-29 22:24:57 +00:00
|
|
|
end
|
2012-03-06 21:42:28 +00:00
|
|
|
end
|