123456789_123456789_123456789_123456789_123456789_

Module: ActiveStorage::Attached::Model

Relationships & Source Files
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
Defined in: activestorage/lib/active_storage/attached/model.rb

Overview

Provides the class-level DSL for declaring an Active Record model’s attachments.

Class Method Summary

::ActiveSupport::Concern - Extended

class_methods

Define class methods from given block.

included

Evaluate given block in context of base class, so that you can write class macros here.

prepended

Evaluate given block in context of base class, so that you can write class macros here.

append_features, prepend_features

Instance Attribute Summary

Instance Method Summary

Instance Attribute Details

#changed_for_autosave?Boolean (readonly)

This method is for internal use only.
[ GitHub ]

  
# File 'activestorage/lib/active_storage/attached/model.rb', line 262

def changed_for_autosave? # :nodoc:
  super || attachment_changes.any?
end

Instance Method Details

#*_attachment

Returns the attachment for the has_one_attached.

User.last.avatar_attachment
[ GitHub ]

  
# File 'activestorage/lib/active_storage/attached/model.rb', line 13

rdoc_method :method: *_attachment

#*_attachments

Returns the attachments for the has_many_attached.

Gallery.last.photos_attachments
[ GitHub ]

  
# File 'activestorage/lib/active_storage/attached/model.rb', line 20

rdoc_method :method: *_attachments

#*_blob

Returns the blob for the has_one_attached attachment.

User.last.avatar_blob
[ GitHub ]

  
# File 'activestorage/lib/active_storage/attached/model.rb', line 27

rdoc_method :method: *_blob

#*_blobs

Returns the blobs for the has_many_attached attachments.

Gallery.last.photos_blobs
[ GitHub ]

  
# File 'activestorage/lib/active_storage/attached/model.rb', line 34

rdoc_method :method: *_blobs

#attachment_changes

This method is for internal use only.
[ GitHub ]

  
# File 'activestorage/lib/active_storage/attached/model.rb', line 258

def attachment_changes # :nodoc:
  @attachment_changes ||= {}
end

#initialize_dup

This method is for internal use only.
[ GitHub ]

  
# File 'activestorage/lib/active_storage/attached/model.rb', line 266

def initialize_dup(*) # :nodoc:
  super
  @active_storage_attached = nil
  @attachment_changes = nil
end

#reload

This method is for internal use only.
[ GitHub ]

  
# File 'activestorage/lib/active_storage/attached/model.rb', line 272

def reload(*) # :nodoc:
  super.tap { @attachment_changes = nil }
end

#with_attached_*

Includes the attached blobs in your query to avoid N+1 queries.

If ActiveStorage.track_variants is enabled, it will also include the variants record and their attached blobs.

User.with_attached_avatar

Use the plural form for has_many_attached:

Gallery.with_attached_photos
[ GitHub ]

  
# File 'activestorage/lib/active_storage/attached/model.rb', line 55

rdoc_method :method: with_attached_*