# -*- encoding : utf-8 -*- class DataFile < ActiveRecord::Base # searchkick belongs_to :file_folder belongs_to :militer_cat belongs_to :image_file belongs_to :square_image_file, :class_name => "ImageFile" belongs_to :data_file_category has_many :category_categoryables, :as => :categoryable has_many :categories, :through => :category_categoryables has_many :download_contents mount_uploader :file, FileUploader before_save do if !self.name? self.name = File.basename(self.file.filename, File.extname(self.file.filename)).to_s if self.file? end end before_create { generate_token() } def file_type mime = `file --mime -br "#{self.file.path}"`.strip.split(';')[0] mime end def abstract_file_name self.name end def abstract_file_name_slug self.name.to_slug end def generate_token() begin self[:token] = SecureRandom.urlsafe_base64 end while DataFile.exists?(:token => self[:token]) end end