Under the covers, this relationship is implemented as a has_one
association to a ActiveStorage::Attachment record
and a has_one-through association to a ActiveStorage::Blob record. These
associations are available as avatar_attachment and
avatar_blob. But you shouldn’t need to work with these
associations directly in most circumstances.
The system has been designed to having you go through the ActiveStorage::Attached::One
proxy that provides the dynamic proxy to the associations and factory
methods, like attach.
If the :dependent option isn’t set, the attachment will be
purged (i.e. destroyed) whenever the record is destroyed.