diff --git a/lib/aasm/base.rb b/lib/aasm/base.rb index a9c30b3..930da8f 100644 --- a/lib/aasm/base.rb +++ b/lib/aasm/base.rb @@ -8,7 +8,7 @@ module AASM @name = name # @state_machine = @klass.aasm(@name).state_machine @state_machine = state_machine - @state_machine.config.column ||= (options[:column] || :aasm_state).to_sym # aasm4 + @state_machine.config.column ||= (options[:column] || default_column).to_sym # @state_machine.config.column = options[:column].to_sym if options[:column] # master @options = options @@ -136,6 +136,10 @@ module AASM private + def default_column + @name.to_sym == :default ? :aasm_state : @name.to_sym + end + def configure(key, default_value) if @options.key?(key) @state_machine.config.send("#{key}=", @options[key]) diff --git a/spec/models/active_record/basic_active_record_two_state_machines_example.rb b/spec/models/active_record/basic_active_record_two_state_machines_example.rb index 1bb2169..9502159 100644 --- a/spec/models/active_record/basic_active_record_two_state_machines_example.rb +++ b/spec/models/active_record/basic_active_record_two_state_machines_example.rb @@ -1,7 +1,7 @@ class BasicActiveRecordTwoStateMachinesExample < ActiveRecord::Base include AASM - aasm :search, :column => :search do + aasm :search do state :initialised, :initial => true state :queried state :requested @@ -14,7 +14,7 @@ class BasicActiveRecordTwoStateMachinesExample < ActiveRecord::Base end end - aasm :sync, :column => :sync do + aasm :sync do state :unsynced, :initial => true state :synced diff --git a/spec/models/active_record/gate.rb b/spec/models/active_record/gate.rb index 7fcc70a..5f7b688 100644 --- a/spec/models/active_record/gate.rb +++ b/spec/models/active_record/gate.rb @@ -28,7 +28,7 @@ class MultipleGate < ActiveRecord::Base 'value' end - aasm :left do + aasm :left, :column => :aasm_state do state :opened state :closed diff --git a/spec/models/active_record/no_direct_assignment.rb b/spec/models/active_record/no_direct_assignment.rb index fc942c1..978d49e 100644 --- a/spec/models/active_record/no_direct_assignment.rb +++ b/spec/models/active_record/no_direct_assignment.rb @@ -11,7 +11,7 @@ end class MultipleNoDirectAssignment < ActiveRecord::Base include AASM - aasm :left, :no_direct_assignment => true do + aasm :left, :column => :aasm_state, :no_direct_assignment => true do state :pending, :initial => true state :running event :run do diff --git a/spec/models/active_record/no_scope.rb b/spec/models/active_record/no_scope.rb index 13d7169..2d70cfc 100644 --- a/spec/models/active_record/no_scope.rb +++ b/spec/models/active_record/no_scope.rb @@ -11,7 +11,7 @@ end class MultipleNoScope < ActiveRecord::Base include AASM - aasm :left, :create_scopes => false do + aasm :left, :column => :aasm_state, :create_scopes => false do state :pending, :initial => true state :running event :run do diff --git a/spec/models/active_record/thief.rb b/spec/models/active_record/thief.rb index 9dd90d9..572b60f 100644 --- a/spec/models/active_record/thief.rb +++ b/spec/models/active_record/thief.rb @@ -20,7 +20,7 @@ class MultipleThief < ActiveRecord::Base set_table_name "multiple_thieves" end include AASM - aasm :left do + aasm :left, :column => :aasm_state do state :rich state :jailed initial_state Proc.new {|thief| thief.skilled ? :rich : :jailed }