Sha256: ad61f86470a8148ca3a48048b10374e07247f5d1005ae8e4729684821e2c72df
Contents?: true
Size: 641 Bytes
Versions: 8
Compression:
Stored size: 641 Bytes
Contents
# frozen_string_literal: true module C module NonDeletable extend ActiveSupport::Concern included do has_one :non_delete, as: :non_deletable, dependent: :destroy before_create do create_non_delete! end def destroy create_non_delete! unless non_delete non_delete.update(deleted: true) end def deleted? create_non_delete! unless non_delete non_delete.deleted end end def self.included(klass) klass.instance_eval do default_scope { includes(:non_delete).where(c_non_deletes: { deleted: false }) } end end end end
Version data entries
8 entries across 8 versions & 1 rubygems