From d3e1e0305645b9de904399144b18b5d2bdf86e32 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 27 Mar 2005 00:01:56 +0000 Subject: Added :owerwrite_params back to url_for and friends -- it was AWL since the introduction of Routes #921 [raphinou] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1016 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- actionpack/CHANGELOG | 2 ++ actionpack/lib/action_controller/url_rewriter.rb | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/actionpack/CHANGELOG b/actionpack/CHANGELOG index 5519505526..c5f42e51be 100644 --- a/actionpack/CHANGELOG +++ b/actionpack/CHANGELOG @@ -1,5 +1,7 @@ *SVN* +* Added :owerwrite_params back to url_for and friends -- it was AWL since the introduction of Routes #921 [raphinou] + * Added :position option to link_to_remote/form_remote_tag that can be either :before, :top, :bottom, or :after and specifies where the return from the method should be inserted #952 [Matthew McCray/Sam Stephenson] * Added Effect.Highlight to prototype.js to do Yellow Fade Technique (of 37signals' fame) on any container #952 [Sam Stephenson/?] diff --git a/actionpack/lib/action_controller/url_rewriter.rb b/actionpack/lib/action_controller/url_rewriter.rb index 6474c72306..6d7c99eff0 100644 --- a/actionpack/lib/action_controller/url_rewriter.rb +++ b/actionpack/lib/action_controller/url_rewriter.rb @@ -35,8 +35,15 @@ module ActionController options = options.symbolize_keys options.update((options[:params] || {}).symbolize_keys) RESERVED_OPTIONS.each {|k| options.delete k} - path, extras = Routing::Routes.generate(options, @request) + + if extras[:overwrite_params] + params_copy = @request.parameters.delete_if { |k,v| ["controller","action"].include? k } + params_copy.update extras[:overwrite_params] + extras.delete(:overwrite_params) + extras.update(params_copy) + end + path = "/#{path.join('/')}".chomp '/' path = '/' if path.empty? path += build_query_string(extras) -- cgit v1.2.3