diff --git a/lib/aasm/aasm.rb b/lib/aasm/aasm.rb index f80d36b..79378d5 100644 --- a/lib/aasm/aasm.rb +++ b/lib/aasm/aasm.rb @@ -150,7 +150,9 @@ private event.may_fire?(self, *args) end - def aasm_fire_event(name, persist, *args) + def aasm_fire_event(name, options, *args) + persist = options[:persist] + event = self.class.aasm_events[name] begin old_state = aasm_state_object_for_state(aasm_current_state) diff --git a/lib/aasm/base.rb b/lib/aasm/base.rb index 2143643..fef0953 100644 --- a/lib/aasm/base.rb +++ b/lib/aasm/base.rb @@ -33,11 +33,11 @@ module AASM end @clazz.send(:define_method, "#{name.to_s}!") do |*args| - aasm_fire_event(name, true, *args) + aasm_fire_event(name, {:persist => true}, *args) end @clazz.send(:define_method, "#{name.to_s}") do |*args| - aasm_fire_event(name, false, *args) + aasm_fire_event(name, {:persist => false}, *args) end end