From 309831a61990e2d9feb76401e1999b499ece9a79 Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Sat, 30 Nov 2013 13:46:07 +0000 Subject: [PATCH 1/1] Monkey patch escaping in redirect routes The correct method of escaping depends on whether the parameter is being substituted in the path or the query, but all our ones are substitued in the path so use URI.escape instead of the standard Rack::Utils.escape which does query escaping. https://github.com/rails/rails/issues/13110 --- config/initializers/routing_redirect.rb | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 config/initializers/routing_redirect.rb diff --git a/config/initializers/routing_redirect.rb b/config/initializers/routing_redirect.rb new file mode 100644 index 000000000..d064472f6 --- /dev/null +++ b/config/initializers/routing_redirect.rb @@ -0,0 +1,16 @@ +require "action_dispatch/routing/redirection" + +# +# Fix escaping in routes to use path style escaping +# +# https://github.com/rails/rails/issues/13110 +# +module ActionDispatch + module Routing + class PathRedirect < Redirect + def escape(params) + Hash[params.map{ |k,v| [k, URI.escape(v)] }] + end + end + end +end -- 2.43.2