Sha256: aef85be45e8c927a9e9e7f87164eb5b28ad88119d7e17bff81b85ae30d988ec3

Contents?: true

Size: 816 Bytes

Versions: 6

Compression:

Stored size: 816 Bytes

Contents

class Dorsale::Alexandrie::Attachment < ::Dorsale::ApplicationRecord
  self.table_name = "dorsale_alexandrie_attachments"

  belongs_to :attachable, polymorphic: true
  belongs_to :sender,     polymorphic: true

  belongs_to :attachment_type, required: false

  validates :attachable, presence: true
  validates :file,       presence: true

  mount_uploader :file, ::Dorsale::Alexandrie::FileUploader

  default_scope -> {
    all
      .order(created_at: :desc, id: :desc)
      .preload(:attachment_type)
  }

  def download_filename
    if File.extname(file_identifier) == File.extname(name)
      name
    else
      name.parameterize + File.extname(file_identifier)
    end
  end

  private

  before_save :assign_default_name

  def assign_default_name
    self.name = file_identifier if name.blank?
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
dorsale-3.6.1 app/models/dorsale/alexandrie/attachment.rb
dorsale-3.6.0 app/models/dorsale/alexandrie/attachment.rb
dorsale-3.5.2 app/models/dorsale/alexandrie/attachment.rb
dorsale-3.5.1 app/models/dorsale/alexandrie/attachment.rb
dorsale-3.5.0 app/models/dorsale/alexandrie/attachment.rb
dorsale-3.4.0 app/models/dorsale/alexandrie/attachment.rb