orbit-basic/app/models/tag.rb

35 lines
908 B
Ruby
Raw Normal View History

class Tag
include Mongoid::Document
include Mongoid::Timestamps
include Impressionist::Impressionable
is_impressionable :counter_cache => { :column_name => :view_count }
2013-04-26 03:18:57 +00:00
field :name, localize: true
field :cloud_view_count, type: Integer, default: 0
field :is_default, type: Boolean, default: false
field :view_count, type: Integer, default: 0
2013-01-08 04:36:50 +00:00
belongs_to :tag_lease, polymorphic: true
2013-04-26 03:18:57 +00:00
has_many :taggings, dependent: :destroy
validates :name, :at_least_one => true
before_destroy :destroy_module_tag, if: Proc.new { |tag| tag.tag_lease_type.eql?("ModuleTag") }
protected
def self.get_impressionist(item_tag = self)
item_tag.impressions.where(:created_at.gte=> 14.days.ago,:created_at.lte => Time.now).count
end
2012-07-31 03:57:32 +00:00
private
def destroy_module_tag
ModuleTag.without_callback(:destroy, :before, :destroy_tag) do
self.tag_lease.destroy
end
end
2012-02-14 16:32:20 +00:00
end