module Attache::Rails::Model

Public Class Methods

included(base) click to toggle source
# File lib/attache/rails/model.rb, line 11
def self.included(base)
  # has_one_attache, has_many_attaches
  base.extend ClassMethods

  # `discard` management
  base.class_eval do
    attr_accessor :attaches_to_backup
    attr_accessor :attaches_discarded
    after_commit do |instance|
      instance.attaches_discard!(instance.attaches_discarded) if instance.attaches_discarded.present?
      instance.attaches_discarded = []
      instance.attaches_backup!(instance.attaches_to_backup) if instance.attaches_to_backup.present?
      instance.attaches_to_backup = []
    end
  end
end