From 1915d7ccce99a35c1a5e95e639760168a4bcc99f Mon Sep 17 00:00:00 2001 From: Xavier Noria Date: Tue, 23 Sep 2008 21:25:28 +0200 Subject: a leading slash in the :controller of url_for ensures you link to the root namespace --- actionpack/lib/action_controller/base.rb | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'actionpack') diff --git a/actionpack/lib/action_controller/base.rb b/actionpack/lib/action_controller/base.rb index 457b9e85bc..fe168788e2 100644 --- a/actionpack/lib/action_controller/base.rb +++ b/actionpack/lib/action_controller/base.rb @@ -549,8 +549,8 @@ module ActionController #:nodoc: response end - # Returns a URL that has been rewritten according to the options hash and the defined Routes. - # (For doing a complete redirect, use redirect_to). + # Returns a URL that has been rewritten according to the options hash and the defined routes. + # (For doing a complete redirect, use +redirect_to+). # # url_for is used to: # @@ -590,7 +590,15 @@ module ActionController #:nodoc: # missing values in the current request's parameters. Routes attempts to guess when a value should and should not be # taken from the defaults. There are a few simple rules on how this is performed: # - # * If the controller name begins with a slash, no defaults are used: url_for :controller => '/home' + # * If the controller name begins with a slash no defaults are used: + # + # url_for :controller => '/home' + # + # In particular, a leading slash ensures no namespace is assumed. Thus, + # while url_for :controller => 'users' may resolve to + # Admin::UsersController if the current controller lives under + # that module, url_for :controller => '/users' ensures you link + # to ::UsersController no matter what. # * If the controller changes, the action will default to index unless provided # # The final rule is applied while the URL is being generated and is best illustrated by an example. Let us consider the -- cgit v1.2.3