aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndy Jeffries <andy@andyjeffries.co.uk>2011-12-05 15:41:38 +0000
committerAndy Jeffries <andy@andyjeffries.co.uk>2011-12-05 15:41:38 +0000
commit71d769e3b58cb56b4b1d5143936c65be8b27c490 (patch)
treedeb3f2d6415373feeaaa3210ca4f49f0966b2aa6
parentd4964b338667fb14d7755cd90af88bb267238958 (diff)
downloadrails-71d769e3b58cb56b4b1d5143936c65be8b27c490.tar.gz
rails-71d769e3b58cb56b4b1d5143936c65be8b27c490.tar.bz2
rails-71d769e3b58cb56b4b1d5143936c65be8b27c490.zip
Named Routes shouldn't override existing ones (currently route recognition goes with the earliest match, named routes use the latest match)
-rw-r--r--actionpack/lib/action_dispatch/routing/route_set.rb2
-rw-r--r--actionpack/test/controller/routing_test.rb4
2 files changed, 3 insertions, 3 deletions
diff --git a/actionpack/lib/action_dispatch/routing/route_set.rb b/actionpack/lib/action_dispatch/routing/route_set.rb
index 2bcde16110..c64214431a 100644
--- a/actionpack/lib/action_dispatch/routing/route_set.rb
+++ b/actionpack/lib/action_dispatch/routing/route_set.rb
@@ -356,7 +356,7 @@ module ActionDispatch
conditions = build_conditions(conditions, valid_conditions, path.names.map { |x| x.to_sym })
route = @set.add_route(app, path, conditions, defaults, name)
- named_routes[name] = route if name
+ named_routes[name] = route if name && !named_routes[name]
route
end
diff --git a/actionpack/test/controller/routing_test.rb b/actionpack/test/controller/routing_test.rb
index 4a67380f59..062fc1f94e 100644
--- a/actionpack/test/controller/routing_test.rb
+++ b/actionpack/test/controller/routing_test.rb
@@ -713,12 +713,12 @@ class RouteSetTest < ActiveSupport::TestCase
assert_equal set.routes.first, set.named_routes[:hello]
end
- def test_later_named_routes_take_precedence
+ def test_earlier_named_routes_take_precedence
set.draw do
match '/hello/world' => 'a#b', :as => 'hello'
match '/hello' => 'a#b', :as => 'hello'
end
- assert_equal set.routes.last, set.named_routes[:hello]
+ assert_equal set.routes.first, set.named_routes[:hello]
end
def setup_named_route_test