module Approvable::ActsAsApprovable::ClassMethods
Public Instance Methods
acts_as_approvable(**options)
click to toggle source
# File lib/approvable/acts_as_approvable.rb, line 9 def acts_as_approvable **options include Approvable::ActsAsApprovable::LocalInstanceMethods has_many :change_requests, as: :approvable, class_name: 'Approvable::ChangeRequest', dependent: :destroy has_one :current_change_request, -> {where.not(state: 'approved') }, as: :approvable, class_name: 'Approvable::ChangeRequest', autosave: true before_save :apply_changes, if: :auto_approve? after_save :force_approve!, if: :auto_approve? cattr_accessor :filter_attrs, :filter_type if options[:except] self.filter_type = :except self.filter_attrs = options[:except] elsif options[:only] self.filter_type = :only self.filter_attrs = options[:only] else self.filter_type = :except self.filter_attrs = [] end unless method_defined?(:assign_attributes_without_change_request) alias_method_chain :assign_attributes, :change_request alias_method :attributes=, :assign_attributes_with_change_request end end