From: Tom Hughes Date: Sat, 30 Nov 2013 13:46:07 +0000 (+0000) Subject: Monkey patch escaping in redirect routes X-Git-Tag: live~4639 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/309831a61990e2d9feb76401e1999b499ece9a79?hp=a2b9f593f5e55356e99a310929141495b68b1c3b 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 --- 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