From 922f817a5a369adc8cb0dd53f332785ee20a667a Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 13 Dec 2004 11:35:48 +0000 Subject: Added the option of passing false to :module or :controller_prefix in order to "break out" of a module or prefix git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@142 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- actionpack/lib/action_controller/url_rewriter.rb | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'actionpack/lib/action_controller/url_rewriter.rb') diff --git a/actionpack/lib/action_controller/url_rewriter.rb b/actionpack/lib/action_controller/url_rewriter.rb index 78638da39e..493e4911c6 100644 --- a/actionpack/lib/action_controller/url_rewriter.rb +++ b/actionpack/lib/action_controller/url_rewriter.rb @@ -12,7 +12,7 @@ module ActionController validate_options(VALID_OPTIONS, options.keys) rewrite_url( - rewrite_path(@rewritten_path, options), + rewrite_path(@rewritten_path, resolve_aliases(options)), options ) end @@ -30,8 +30,13 @@ module ActionController unknown_option_keys = supplied_option_keys - valid_option_keys raise(ActionController::ActionControllerError, "Unknown options: #{unknown_option_keys}") unless unknown_option_keys.empty? end + + def resolve_aliases(options) + options[:controller_prefix] = options[:module] unless options[:module].nil? + options + end - def rewrite_url(path, options) + def rewrite_url(path, options) rewritten_url = "" rewritten_url << @request.protocol unless options[:only_path] rewritten_url << @request.host_with_port unless options[:only_path] @@ -122,9 +127,14 @@ module ActionController end def controller_name(options, controller_prefix) - options[:controller_prefix] = "#{options[:module]}/#{options[:controller_prefix]}" if options[:module] ensure_slash_suffix(options, :controller_prefix) - controller_name = options[:controller_prefix] || controller_prefix || "" + + controller_name = case options[:controller_prefix] + when String: options[:controller_prefix] + when false : "" + when nil : controller_prefix || "" + end + controller_name << (options[:controller] + "/") if options[:controller] return controller_name end -- cgit v1.2.3