class ActiveStorage::Attached::Changes::CreateMany
:nodoc:
def assign_associated_attachments
def assign_associated_attachments record.public_send("#{name}_attachments=", persisted_or_new_attachments) end
def attachments
def attachments @attachments ||= subchanges.collect(&:attachment) end
def blobs
def blobs @blobs ||= subchanges.collect(&:blob) end
def build_subchange_from(attachable)
def build_subchange_from(attachable) ActiveStorage::Attached::Changes::CreateOneOfMany.new(name, record, attachable) end
def initialize(name, record, attachables, pending_uploads: [])
def initialize(name, record, attachables, pending_uploads: []) @name, @record, @attachables = name, record, Array(attachables) blobs.each(&:identify_without_saving) @pending_uploads = Array(pending_uploads) + subchanges_without_blobs attachments end
def persisted_or_new_attachments
def persisted_or_new_attachments attachments.select { |attachment| attachment.persisted? || attachment.new_record? } end
def reset_associated_blobs
def reset_associated_blobs record.public_send("#{name}_blobs").reset end
def save
def save assign_associated_attachments reset_associated_blobs end
def subchanges
def subchanges @subchanges ||= attachables.collect { |attachable| build_subchange_from(attachable) } end
def subchanges_without_blobs
def subchanges_without_blobs subchanges.reject { |subchange| subchange.attachable.is_a?(ActiveStorage::Blob) } end
def upload
def upload pending_uploads.each(&:upload) end