module JamRuby class MusicNotation < ActiveRecord::Base include JamRuby::S3ManagerMixin self.primary_key = 'id' attr_accessible :file_url, :size, :file_name belongs_to :user, :class_name => "JamRuby::User", foreign_key: :user_id belongs_to :music_session, :class_name => "JamRuby::MusicSession", foreign_key: :music_session_id mount_uploader :file_url, MusicNotationUploader before_destroy :delete_s3_files validates :file_url, :presence => true validates :size, :presence => true before_validation do if file_url.present? && file_url_changed? self.size = file_url.file.size end end def s3_url s3_manager.s3_url(self[:file_url]) end def sign_url(expiration_time = 120) s3_manager.sign_url(self[:file_url], {:expires => expiration_time, :secure => false}) end private def delete_s3_files s3_manager.delete(self[:file_url]) if self[:file_url] end end end