aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_dispatch
diff options
context:
space:
mode:
authorkennyj <kennyj@gmail.com>2012-02-06 01:07:49 +0900
committerkennyj <kennyj@gmail.com>2012-02-07 00:45:01 +0900
commit837231a8295be63aa3dcbf867b457b2a7aa27386 (patch)
treefe40cf4620ce154ba282a58671e3ae175855bb30 /actionpack/lib/action_dispatch
parentaf7dafff818094a6e02505fe7d6d87add6c2a7e8 (diff)
downloadrails-837231a8295be63aa3dcbf867b457b2a7aa27386.tar.gz
rails-837231a8295be63aa3dcbf867b457b2a7aa27386.tar.bz2
rails-837231a8295be63aa3dcbf867b457b2a7aa27386.zip
Fix url_for method's behavior when it is called with :controller option which starts with "/" from multiple nested controller.
Closes #3864
Diffstat (limited to 'actionpack/lib/action_dispatch')
-rw-r--r--actionpack/lib/action_dispatch/routing/route_set.rb2
1 files changed, 1 insertions, 1 deletions
diff --git a/actionpack/lib/action_dispatch/routing/route_set.rb b/actionpack/lib/action_dispatch/routing/route_set.rb
index ac4dd7d927..c96999d23f 100644
--- a/actionpack/lib/action_dispatch/routing/route_set.rb
+++ b/actionpack/lib/action_dispatch/routing/route_set.rb
@@ -482,7 +482,7 @@ module ActionDispatch
# if the current controller is "foo/bar/baz" and :controller => "baz/bat"
# is specified, the controller becomes "foo/baz/bat"
def use_relative_controller!
- if !named_route && different_controller?
+ if !named_route && different_controller? && !controller.start_with?("/")
old_parts = current_controller.split('/')
size = controller.count("/") + 1
parts = old_parts[0...-size] << controller