From 7b5293906b6da9d14e65abb92fa42c850ed1b0fe Mon Sep 17 00:00:00 2001 From: micat Date: Sat, 23 Aug 2014 22:33:08 +0900 Subject: [PATCH] Return Symbol in find_scope! if String passed --- lib/devise/mapping.rb | 2 +- test/controllers/url_helpers_test.rb | 6 ++++++ test/mapping_test.rb | 1 + 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/devise/mapping.rb b/lib/devise/mapping.rb index de787dc5..5c40f762 100644 --- a/lib/devise/mapping.rb +++ b/lib/devise/mapping.rb @@ -33,7 +33,7 @@ module Devise def self.find_scope!(obj) case obj when String, Symbol - return obj + return obj.to_sym when Class Devise.mappings.each_value { |m| return m.name if obj <= m.to } else diff --git a/test/controllers/url_helpers_test.rb b/test/controllers/url_helpers_test.rb index 23ba5f15..06895b5d 100644 --- a/test/controllers/url_helpers_test.rb +++ b/test/controllers/url_helpers_test.rb @@ -13,6 +13,12 @@ class RoutesTest < ActionController::TestCase assert_equal @controller.send(:"#{prepend_path}#{name}_url", :user), send(:"#{prepend_path}user_#{name}_url") + # With string + assert_equal @controller.send(:"#{prepend_path}#{name}_path", "user"), + send(:"#{prepend_path}user_#{name}_path") + assert_equal @controller.send(:"#{prepend_path}#{name}_url", "user"), + send(:"#{prepend_path}user_#{name}_url") + # Default url params assert_equal @controller.send(:"#{prepend_path}#{name}_path", :user, param: 123), send(:"#{prepend_path}user_#{name}_path", param: 123) diff --git a/test/mapping_test.rb b/test/mapping_test.rb index 2ec97e19..d22bf0bc 100644 --- a/test/mapping_test.rb +++ b/test/mapping_test.rb @@ -62,6 +62,7 @@ class MappingTest < ActiveSupport::TestCase test 'find scope for a given object' do assert_equal :user, Devise::Mapping.find_scope!(User) assert_equal :user, Devise::Mapping.find_scope!(:user) + assert_equal :user, Devise::Mapping.find_scope!("user") assert_equal :user, Devise::Mapping.find_scope!(User.new) end