aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack
diff options
context:
space:
mode:
Diffstat (limited to 'actionpack')
-rw-r--r--actionpack/CHANGELOG.md7
-rw-r--r--actionpack/lib/action_dispatch/routing/polymorphic_routes.rb21
2 files changed, 10 insertions, 18 deletions
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
# <tt>polymorphic_url</tt> with <tt>routing_type: :path</tt>.
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: