43 lines
949 B
Ruby
43 lines
949 B
Ruby
class VideoFile < ActiveRecord::Base
|
|
belongs_to :video_folder
|
|
belongs_to :image_file
|
|
belongs_to :investigation_cat
|
|
|
|
has_many :video_file_langs, :dependent => :destroy
|
|
accepts_nested_attributes_for :video_file_langs
|
|
|
|
|
|
scope :recents, -> {where(:public => true).order("video_files.position ASC, video_files.created_at DESC")}
|
|
|
|
scope :lang, lambda { |lang|
|
|
if lang == "fr"
|
|
where(:fr => true)
|
|
else
|
|
where(:en => true)
|
|
end
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
def generate_token()
|
|
begin
|
|
self[:token] = SecureRandom.urlsafe_base64
|
|
end while DataFile.exists?(:token => self[:token])
|
|
end
|
|
|
|
before_create { generate_token() }
|
|
|
|
mount_uploader :poster, ImageUploader
|
|
mount_uploader :mpg, VideoUploader
|
|
mount_uploader :ogg, VideoUploader
|
|
mount_uploader :webm, VideoUploader
|
|
|
|
def lang(locale)
|
|
self.video_file_langs.find_by_lang_site_id(LangSite.find_by_slug(locale).id)
|
|
end
|
|
|
|
end
|