From 2d08fd250638a39fbc8509b4e1c3f87a5f9e36c6 Mon Sep 17 00:00:00 2001 From: Gert Goet Date: Thu, 25 Sep 2014 17:50:16 +0200 Subject: Remove internal options from query string of paths Fixes #17057 --- actionpack/CHANGELOG.md | 7 +++++++ .../action_dispatch/routing/polymorphic_routes.rb | 21 +++------------------ 2 files changed, 10 insertions(+), 18 deletions(-) (limited to 'actionpack') diff --git a/actionpack/CHANGELOG.md b/actionpack/CHANGELOG.md index de9722c392..4a79b2efec 100644 --- a/actionpack/CHANGELOG.md +++ b/actionpack/CHANGELOG.md @@ -1,3 +1,10 @@ +* Fix bug where `routing_type=path` would end up in query string of paths + generated by `edit_` and `new_polymorphic_path` + + Fixes #17057. + + *Gert Goet* + * Deprecate implicit Array conversion for Response objects. It was added (using `#to_ary`) so we could conveniently use implicit splatting: diff --git a/actionpack/lib/action_dispatch/routing/polymorphic_routes.rb b/actionpack/lib/action_dispatch/routing/polymorphic_routes.rb index f15868d37e..1fa438f2eb 100644 --- a/actionpack/lib/action_dispatch/routing/polymorphic_routes.rb +++ b/actionpack/lib/action_dispatch/routing/polymorphic_routes.rb @@ -116,27 +116,13 @@ module ActionDispatch action, type, opts - end # Returns the path component of a URL for the given record. It uses # polymorphic_url with routing_type: :path. def polymorphic_path(record_or_hash_or_array, options = {}) - if Hash === record_or_hash_or_array - options = record_or_hash_or_array.merge(options) - record = options.delete :id - return polymorphic_path record, options - end - - opts = options.dup - action = opts.delete :action - type = :path - - HelperMethodBuilder.polymorphic_method self, - record_or_hash_or_array, - action, - type, - opts + opts = options.reverse_merge(:routing_type => :path) + polymorphic_url(record_or_hash_or_array, opts) end @@ -159,8 +145,7 @@ module ActionDispatch end def polymorphic_path_for_action(action, record_or_hash, options) - options = options.merge(:action => action, :routing_type => :path) - polymorphic_path(record_or_hash, options) + polymorphic_path(record_or_hash, options.merge(:action => action)) end class HelperMethodBuilder # :nodoc: -- cgit v1.2.3