aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack
diff options
context:
space:
mode:
authorXavier Noria <fxn@hashref.com>2008-09-23 21:25:28 +0200
committerXavier Noria <fxn@hashref.com>2008-09-23 21:29:26 +0200
commit1915d7ccce99a35c1a5e95e639760168a4bcc99f (patch)
tree3df0c3cc9cbc0ceba6ce1f58a58a842e705d45e7 /actionpack
parent8a2820ada320a3bc7fcf8c6f3513d10039d650ad (diff)
downloadrails-1915d7ccce99a35c1a5e95e639760168a4bcc99f.tar.gz
rails-1915d7ccce99a35c1a5e95e639760168a4bcc99f.tar.bz2
rails-1915d7ccce99a35c1a5e95e639760168a4bcc99f.zip
a leading slash in the :controller of url_for ensures you link to the root namespace
Diffstat (limited to 'actionpack')
-rw-r--r--actionpack/lib/action_controller/base.rb14
1 files changed, 11 insertions, 3 deletions
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+).
#
# <tt>url_for</tt> 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: <tt>url_for :controller => '/home'</tt>
+ # * 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 <tt>url_for :controller => 'users'</tt> may resolve to
+ # <tt>Admin::UsersController</tt> if the current controller lives under
+ # that module, <tt>url_for :controller => '/users'</tt> ensures you link
+ # to <tt>::UsersController</tt> 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