diff options
author | José Valim <jose.valim@gmail.com> | 2010-08-24 10:09:06 -0300 |
---|---|---|
committer | José Valim <jose.valim@gmail.com> | 2010-08-24 10:26:25 -0300 |
commit | b4f304b7b68e0b4fd780cc6d0944edefc362669d (patch) | |
tree | d8c394df4931ebd8cf9aff98591bf8efb0c64136 | |
parent | 2fb0cbec024c5b51451deab7e390e2d4f712cf8f (diff) | |
download | rails-b4f304b7b68e0b4fd780cc6d0944edefc362669d.tar.gz rails-b4f304b7b68e0b4fd780cc6d0944edefc362669d.tar.bz2 rails-b4f304b7b68e0b4fd780cc6d0944edefc362669d.zip |
Fix a bug where symbols and strings were not behaving the same in the router. [#5431 state:resolved]
-rw-r--r-- | actionpack/lib/action_dispatch/routing/mapper.rb | 13 | ||||
-rw-r--r-- | actionpack/test/dispatch/routing_test.rb | 6 |
2 files changed, 7 insertions, 12 deletions
diff --git a/actionpack/lib/action_dispatch/routing/mapper.rb b/actionpack/lib/action_dispatch/routing/mapper.rb index 0a6cd63b56..4dc2fc086e 100644 --- a/actionpack/lib/action_dispatch/routing/mapper.rb +++ b/actionpack/lib/action_dispatch/routing/mapper.rb @@ -726,22 +726,17 @@ module ActionDispatch path = options.delete(:path) action = args.first - if action.is_a?(Symbol) + if action && action.to_s =~ /^[\w_]+$/ path = path_for_action(action, path) - options[:to] ||= action - options[:as] = name_for_action(action, options[:as]) + options[:action] ||= action + options[:as] = name_for_action(action, options[:as]) with_exclusive_scope do return super(path, options) end elsif resource_method_scope? path = path_for_custom_action - if action =~ /^[a-zA-Z][_a-zA-Z0-9]*$/ - options[:action] ||= action - options[:as] = name_for_action(action, options[:as]) - else - options[:as] = name_for_action(options[:as]) if options[:as] - end + options[:as] = name_for_action(options[:as]) if options[:as] args.push(options) with_exclusive_scope do diff --git a/actionpack/test/dispatch/routing_test.rb b/actionpack/test/dispatch/routing_test.rb index f4a839e097..a84c4d2d18 100644 --- a/actionpack/test/dispatch/routing_test.rb +++ b/actionpack/test/dispatch/routing_test.rb @@ -658,7 +658,7 @@ class TestRoutingMapper < ActionDispatch::IntegrationTest get '/bookmark/remove' assert_equal 'bookmarks#destroy', @response.body - assert_equal '/bookmark/remove', bookmark_remove_path + assert_equal '/bookmark/remove', remove_bookmark_path end end @@ -1192,7 +1192,7 @@ class TestRoutingMapper < ActionDispatch::IntegrationTest def test_match_shorthand_inside_namespace with_test_routes do - assert_equal '/account/shorthand', account_shorthand_path + assert_equal '/account/shorthand', shorthand_account_path get '/account/shorthand' assert_equal 'account#shorthand', @response.body end @@ -1244,7 +1244,7 @@ class TestRoutingMapper < ActionDispatch::IntegrationTest def test_normalize_namespaced_matches with_test_routes do - assert_equal '/account/description', account_description_path + assert_equal '/account/description', description_account_path get '/account/description' assert_equal 'account#description', @response.body |