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
16 lines
330 B
Ruby
16 lines
330 B
Ruby
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
|