aboutsummaryrefslogtreecommitdiffstats
path: root/guides/source/upgrading_ruby_on_rails.md
diff options
context:
space:
mode:
authorTrevor Turk <trevorturk@gmail.com>2013-03-12 15:07:17 -0500
committerTrevor Turk <trevorturk@gmail.com>2013-03-12 15:07:17 -0500
commitd717882eb501510b8367382ea7d6c0097aac38cf (patch)
tree570c06cdf467ead2fbd55d38b740526fc75728c0 /guides/source/upgrading_ruby_on_rails.md
parentf278deb712b16c7897d63a6565bea3431ec0d38a (diff)
downloadrails-d717882eb501510b8367382ea7d6c0097aac38cf.tar.gz
rails-d717882eb501510b8367382ea7d6c0097aac38cf.tar.bz2
rails-d717882eb501510b8367382ea7d6c0097aac38cf.zip
Document change to clashing named route selection from journey commit 98a9802a
Diffstat (limited to 'guides/source/upgrading_ruby_on_rails.md')
-rw-r--r--guides/source/upgrading_ruby_on_rails.md26
1 files changed, 26 insertions, 0 deletions
diff --git a/guides/source/upgrading_ruby_on_rails.md b/guides/source/upgrading_ruby_on_rails.md
index cb43781f52..0941bc7e58 100644
--- a/guides/source/upgrading_ruby_on_rails.md
+++ b/guides/source/upgrading_ruby_on_rails.md
@@ -103,6 +103,32 @@ Rails 4.0 extracted Active Resource to its own gem. If you still need the featur
* Rails 4.0 changed how `assert_generates`, `assert_recognizes`, and `assert_routing` work. Now all these assertions raise `Assertion` instead of `ActionController::RoutingError`.
+* Rails 4.0 correctly prefers the first named route defined in `config/routes.rb` if a clashing route is found later. Check the output of `rake routes` before upgrading and remove unused named routes to avoid issues.
+
+```ruby
+ # config/routes.rb
+ get 'one' => 'test#example', as: :example
+ get 'two' => 'test#example', as: :example
+
+ # Rails 3
+ <%= example_path %> # => '/two'
+
+ # Rails 4
+ <%= example_path %> # => '/one'
+```
+
+```ruby
+ # config/routes.rb
+ resources :examples
+ get 'clashing/:id' => 'test#example', as: :example
+
+ # Rails 3
+ <%= example_path(1) %> # => '/clashing/1'
+
+ # Rails 4
+ <%= example_path(1) %> # => '/examples/1'
+```
+
* Rails 4.0 also changed the way unicode character routes are drawn. Now you can draw unicode character routes directly. If you already draw such routes, you must change them, for example:
```ruby