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  |