Representation of a single attachment to a model.
Methods
- A
- D
- P
Instance Public methods
attach(attachable)
Link
Associates a given attachment with the current record, saving it to the database.
person.avatar.attach(params[:avatar]) # ActionDispatch::Http::UploadedFile object
person.avatar.attach(params[:signed_blob_id]) # Signed reference to blob from direct upload
person.avatar.attach(io: File.open("/path/to/face.jpg"), filename: "face.jpg", content_type: "image/jpg")
person.avatar.attach(avatar_blob) # ActiveStorage::Blob object
# File activestorage/lib/active_storage/attached/one.rb, line 22 def attach(attachable) blob_was = blob if attached? blob = create_blob_from(attachable) unless blob == blob_was transaction do detach write_attachment build_attachment(blob: blob) end blob_was.purge_later if blob_was && dependent == :purge_later end end
attached?()
Link
Returns true
if an attachment has been made.
class User < ActiveRecord::Base
has_one_attached :avatar
end
User.new.avatar.attached? # => false
attachment()
Link
Returns the associated attachment record.
You don't have to call this method to access the attachment's methods as they are all available at the model level.
detach()
Link
Deletes the attachment without purging it, leaving its blob in place.
purge()
Link
Directly purges the attachment (i.e. destroys the blob and attachment and deletes the file on the service).