class AASM::Base
def setup_no_direct_assignment(aasm_name)
def setup_no_direct_assignment(aasm_name) return unless @state_machine.config.no_direct_assignment @klass.send(:define_method, "#{@state_machine.config.column}=") do |state_name| if self.class.aasm(:"#{aasm_name}").state_machine.config.no_direct_assignment raise AASM::NoDirectAssignmentError.new('direct assignment of AASM column has been disabled (see AASM configuration for this class)') else super(state_name) end end end