class ActiveStorage::Attached::Many
Decorated proxy object representing of multiple attachments to a model.
Public Instance Methods
attach(*attachables)
click to toggle source
Associates one or several attachments with the current record, saving them to the database. Examples:
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("~/racecar.jpg"), filename: "racecar.jpg", content_type: "image/jpg") document.images.attach([ first_blob, second_blob ])
# File activestorage/lib/active_storage/attached/many.rb, line 22 def attach(*attachables) attachables.flatten.collect do |attachable| attachments.create!(name: name, blob: create_blob_from(attachable)) end end
attached?()
click to toggle source
Returns true if any attachments has been made.
class Gallery < ActiveRecord::Base has_many_attached :photos end Gallery.new.photos.attached? # => false
# File activestorage/lib/active_storage/attached/many.rb, line 35 def attached? attachments.any? end
attachments()
click to toggle source
Returns all the associated attachment records.
All methods called on this proxy object that aren't listed here will automatically be delegated to attachments
.
# File activestorage/lib/active_storage/attached/many.rb, line 11 def attachments record.public_send("#{name}_attachments") end
purge()
click to toggle source
Directly purges each associated attachment (i.e. destroys the blobs and attachments and deletes the files on the service).
# File activestorage/lib/active_storage/attached/many.rb, line 41 def purge if attached? attachments.each(&:purge) attachments.reload end end
purge_later()
click to toggle source
Purges each associated attachment through the queuing system.
# File activestorage/lib/active_storage/attached/many.rb, line 49 def purge_later if attached? attachments.each(&:purge_later) end end