Class: ActiveStorage::Attached::One
- Inherits:
-
ActiveStorage::Attached
- Object
- ActiveStorage::Attached
- ActiveStorage::Attached::One
- Defined in:
- lib/active_storage/attached/one.rb
Overview
Representation of a single attachment to a model.
Instance Attribute Summary
Attributes inherited from ActiveStorage::Attached
Instance Method Summary collapse
-
#attach(attachable) ⇒ Object
Associates a given attachment with the current record, saving it to the database.
-
#attached? ⇒ Boolean
Returns true if an attachment has been made.
-
#attachment ⇒ Object
Returns the associated attachment record.
-
#purge ⇒ Object
Directly purges the attachment (i.e. destroys the blob and attachment and deletes the file on the service).
-
#purge_later ⇒ Object
Purges the attachment through the queuing system.
Methods inherited from ActiveStorage::Attached
Constructor Details
This class inherits a constructor from ActiveStorage::Attached
Instance Method Details
#attach(attachable) ⇒ Object
Associates a given attachment with the current record, saving it to the database. Examples:
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("~/face.jpg"), filename: "face.jpg", content_type: "image/jpg")
person.avatar.attach(avatar_blob) # ActiveStorage::Blob object
20 21 22 23 |
# File 'lib/active_storage/attached/one.rb', line 20 def attach(attachable) \ ActiveStorage::Attachment.create!(record: record, name: name, blob: create_blob_from(attachable)) end |
#attached? ⇒ Boolean
Returns true if an attachment has been made.
class User < ActiveRecord::Base
has_one_attached :avatar
end
User.new.avatar.attached? # => false
32 33 34 |
# File 'lib/active_storage/attached/one.rb', line 32 def attached? .present? end |
#attachment ⇒ Object
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.
9 10 11 |
# File 'lib/active_storage/attached/one.rb', line 9 def record.public_send("#{name}_attachment") end |
#purge ⇒ Object
Directly purges the attachment (i.e. destroys the blob and attachment and deletes the file on the service).
38 39 40 41 42 43 |
# File 'lib/active_storage/attached/one.rb', line 38 def purge if attached? .purge nil end end |
#purge_later ⇒ Object
Purges the attachment through the queuing system.
46 47 48 49 50 |
# File 'lib/active_storage/attached/one.rb', line 46 def purge_later if attached? .purge_later end end |