# frozen_string_literal: true module DeletableAttachments extend ActiveSupport::Concern included do before_save :delete_attachments def delete_attachments attachment_reflections.each do |reflection, _| if send("delete_#{reflection}") send(reflection).purge end end end end class_methods do def deletable_attachments(*attachments) attachments.each do |attachment| attribute "delete_#{attachment}", :boolean, default: false end end end end