class ActiveStorage::DiskController

Public Instance Methods

show() click to toggle source
# File lib/active_storage/disk_controller.rb, line 8
def show
  if key = decode_verified_key
    blob = ActiveStorage::Blob.find_by!(key: key)
    
    if stale?(etag: blob.checksum)
      send_data blob.download, filename: blob.filename, type: blob.content_type, disposition: disposition_param
    end
  else
    head :not_found
  end
end

Private Instance Methods

decode_verified_key() click to toggle source
# File lib/active_storage/disk_controller.rb, line 21
def decode_verified_key
  ActiveStorage::VerifiedKeyWithExpiration.decode(params[:encoded_key])
end
disposition_param() click to toggle source
# File lib/active_storage/disk_controller.rb, line 25
def disposition_param
  params[:disposition].presence_in(%w( inline attachment )) || 'inline'
end