Fix the module sorting in devise method.

This commit is contained in:
Jo Liss 2011-01-15 07:10:46 +08:00 committed by José Valim
parent 54dc82ad25
commit 4207c2321f
2 changed files with 5 additions and 4 deletions

View File

@ -47,9 +47,9 @@ module Devise
def devise(*modules)
include Devise::Models::Authenticatable
options = modules.extract_options!
self.devise_modules += modules.map(&:to_sym).uniq.sort do |s1, s2|
Devise::ALL.index(s1) <=> Devise::ALL.index(s2) # follow Devise::ALL order
end
self.devise_modules += modules.map(&:to_sym).uniq.sort_by { |s|
Devise::ALL.index(s) || -1 # follow Devise::ALL order
}
devise_modules_hook! do
devise_modules.each { |m| include Devise::Models.const_get(m.to_s.classify) }

View File

@ -49,7 +49,8 @@ class ActiveRecordTest < ActiveSupport::TestCase
test 'raise error on invalid module' do
assert_raise NameError do
Configurable.class_eval { devise :doesnotexist }
# Mix valid an invalid modules.
Configurable.class_eval { devise :database_authenticatable, :doesnotexit }
end
end