Class: ActiveStorage::Attached::Many
- Inherits:
-
ActiveStorage::Attached
- Object
- ActiveStorage::Attached
- ActiveStorage::Attached::Many
- Defined in:
- lib/active_storage/attached/many.rb
Overview
Decorated proxy object representing of multiple attachments to a model.
Instance Attribute Summary
Attributes inherited from ActiveStorage::Attached
Instance Method Summary collapse
-
#attach(*attachables) ⇒ Object
Associates one or several attachments with the current record, saving them to the database.
-
#attached? ⇒ Boolean
Returns true if any attachments has been made.
-
#attachments ⇒ Object
Returns all the associated attachment records.
-
#detach ⇒ Object
Deletes associated attachments without purging them, leaving their respective blobs in place.
Methods inherited from ActiveStorage::Attached
Constructor Details
This class inherits a constructor from ActiveStorage::Attached
Instance Method Details
#attach(*attachables) ⇒ Object
Associates one or several attachments with the current record, saving them to the database.
document.images.attach(params[:images]) # Array of ActionDispatch::Http::UploadedFile objects
document.images.attach(params[:signed_blob_id]) # Signed reference to blob from direct upload
document.images.attach(io: File.open("/path/to/racecar.jpg"), filename: "racecar.jpg", content_type: "image/jpg")
document.images.attach([ first_blob, second_blob ])
21 22 23 24 25 26 27 28 29 |
# File 'lib/active_storage/attached/many.rb', line 21 def attach(*attachables) attachables.flatten.collect do |attachable| if record.new_record? .build(record: record, blob: create_blob_from(attachable)) else .create!(record: record, blob: create_blob_from(attachable)) end end end |
#attached? ⇒ Boolean
Returns true if any attachments has been made.
class Gallery < ActiveRecord::Base
has_many_attached :photos
end
Gallery.new.photos.attached? # => false
38 39 40 |
# File 'lib/active_storage/attached/many.rb', line 38 def attached? .any? end |
#attachments ⇒ Object
Returns all the associated attachment records.
All methods called on this proxy object that aren't listed here will automatically be delegated to attachments
.
11 12 13 |
# File 'lib/active_storage/attached/many.rb', line 11 def record.public_send("#{name}_attachments") end |
#detach ⇒ Object
Deletes associated attachments without purging them, leaving their respective blobs in place.
43 44 45 |
# File 'lib/active_storage/attached/many.rb', line 43 def detach .destroy_all if attached? end |