diff options
Diffstat (limited to 'actionpack/lib')
-rw-r--r-- | actionpack/lib/action_controller/url_rewriter.rb | 38 |
1 files changed, 2 insertions, 36 deletions
diff --git a/actionpack/lib/action_controller/url_rewriter.rb b/actionpack/lib/action_controller/url_rewriter.rb index 7fdf95a79d..6c51ef3f3e 100644 --- a/actionpack/lib/action_controller/url_rewriter.rb +++ b/actionpack/lib/action_controller/url_rewriter.rb @@ -2,7 +2,7 @@ module ActionController # Rewrites URLs for Base.redirect_to and Base.url_for in the controller. class UrlRewriter #:nodoc: - RESERVED_OPTIONS = [:anchor, :params, :path_params, :only_path, :host, :protocol] + RESERVED_OPTIONS = [:anchor, :params, :only_path, :host, :protocol] def initialize(request, parameters) @request, @parameters = request, parameters @rewritten_path = @request.path ? @request.path.dup : "" @@ -19,11 +19,6 @@ module ActionController alias_method :to_s, :to_str private - def validate_options(valid_option_keys, supplied_option_keys) - unknown_option_keys = supplied_option_keys - valid_option_keys - raise(ActionController::ActionControllerError, "Unknown options: #{unknown_option_keys}") unless unknown_option_keys.empty? - end - def rewrite_url(path, options) rewritten_url = "" rewritten_url << (options[:protocol] || @request.protocol) unless options[:only_path] @@ -31,7 +26,6 @@ module ActionController rewritten_url << options[:application_prefix] if options[:application_prefix] rewritten_url << path - rewritten_url << build_query_string(new_parameters(options)) if options[:params] || options[:overwrite_params] rewritten_url << "##{options[:anchor]}" if options[:anchor] return rewritten_url @@ -39,6 +33,7 @@ module ActionController def rewrite_path(options) options = options.symbolize_keys + options.update((options[:params]).symbolize_keys) if options[:params] RESERVED_OPTIONS.each {|k| options.delete k} path, extras = Routing::Routes.generate(options, @request) @@ -49,25 +44,6 @@ module ActionController return path end - def rewrite_path_params(path, options) - index_action = options[:action] == 'index' || options[:action].nil? && @action == 'index' - id_only = options[:path_params].size == 1 && options[:path_params]['id'] - - if index_action && id_only - path += '/' unless path[-1..-1] == '/' - path += "index/#{options[:path_params]['id']}" - path - else - options[:path_params].inject(path) do |path, pair| - if options[:action].nil? && @request.parameters[pair.first] - path.sub(/\b#{@request.parameters[pair.first]}\b/, pair.last.to_s) - else - path += "/#{pair.last}" - end - end - end - end - def action_name(options, action_prefix = nil, action_suffix = nil) ensure_slash_suffix(options, :action_prefix) ensure_slash_prefix(options, :action_suffix) @@ -108,16 +84,6 @@ module ActionController options[:path_params] = (options[:path_params] || {}).merge({"id" => options[:id]}) if options[:id] end - def new_parameters(options) - parameters = options[:params] || existing_parameters - parameters.update(options[:overwrite_params]) if options[:overwrite_params] - parameters.reject { |key,value| value.nil? } - end - - def existing_parameters - @request.parameters.reject { |key, value| %w( id action controller).include?(key) } - end - # Returns a query string with escaped keys and values from the passed hash. If the passed hash contains an "id" it'll # be added as a path element instead of a regular parameter pair. def build_query_string(hash) |