Class: ActiveStorage::Attached::One
- Inherits:
-
ActiveStorage::Attached
- Object
- ActiveStorage::Attached
- ActiveStorage::Attached::One
- Defined in:
- activestorage/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
23 24 25 26 27 28 29 |
# File 'activestorage/lib/active_storage/attached/one.rb', line 23 def attach(attachable) if attached? && dependent == :purge_later replace attachable else (attachable) end 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
38 39 40 |
# File 'activestorage/lib/active_storage/attached/one.rb', line 38 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.
12 13 14 |
# File 'activestorage/lib/active_storage/attached/one.rb', line 12 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).
44 45 46 47 48 49 |
# File 'activestorage/lib/active_storage/attached/one.rb', line 44 def purge if attached? .purge nil end end |
#purge_later ⇒ Object
Purges the attachment through the queuing system.
52 53 54 55 56 |
# File 'activestorage/lib/active_storage/attached/one.rb', line 52 def purge_later if attached? .purge_later end end |