41 lines
		
	
	
		
			736 B
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			736 B
		
	
	
	
		
			Ruby
		
	
	
	
class Asset
 | 
						|
 | 
						|
  include Mongoid::Document
 | 
						|
  include Mongoid::Timestamps
 | 
						|
  include OrbitTag::Taggable
 | 
						|
 | 
						|
  mount_uploader :data, FileAssetUploader
 | 
						|
  before_save :update_asset_attributes
 | 
						|
 | 
						|
  field :filename
 | 
						|
  field :description, localize: true
 | 
						|
  field :title, localize: true
 | 
						|
  field :content_type
 | 
						|
  field :file_size
 | 
						|
  
 | 
						|
  validates :title, :at_least_one => true
 | 
						|
 | 
						|
  validates_presence_of :data
 | 
						|
 | 
						|
 | 
						|
  belongs_to :asset_category
 | 
						|
  belongs_to :assetable, polymorphic: true
 | 
						|
 | 
						|
  before_save :clean_tags
 | 
						|
 | 
						|
  protected
 | 
						|
 
 | 
						|
  
 | 
						|
  def update_asset_attributes
 | 
						|
    if data.present? && data_changed?
 | 
						|
      self.content_type = data.file.content_type
 | 
						|
      self.file_size = data.file.size
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
  def clean_tags
 | 
						|
    self.tagged_ids.delete('')
 | 
						|
  end
 | 
						|
  
 | 
						|
end
 |