aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_dispatch/journey/router.rb
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2017-08-01 16:59:37 -0500
committerDavid Heinemeier Hansson <david@loudthinking.com>2017-08-01 16:59:37 -0500
commite473946d58cfdab0b16cf91cdad6bef23fcfafc3 (patch)
tree8381b3ddd0fca7ef6e9cb7f79aa53a768ecbf376 /actionpack/lib/action_dispatch/journey/router.rb
parent3d3ec20a485a109bb772cb37382040e25f5d0ded (diff)
parentf9a43f28c087f8ffd35ff7c33a60c938b60f2be2 (diff)
downloadrails-e473946d58cfdab0b16cf91cdad6bef23fcfafc3.tar.gz
rails-e473946d58cfdab0b16cf91cdad6bef23fcfafc3.tar.bz2
rails-e473946d58cfdab0b16cf91cdad6bef23fcfafc3.zip
Merge branch 'master' into active-storage-import
Diffstat (limited to 'actionpack/lib/action_dispatch/journey/router.rb')
-rw-r--r--actionpack/lib/action_dispatch/journey/router.rb7
1 files changed, 6 insertions, 1 deletions
diff --git a/actionpack/lib/action_dispatch/journey/router.rb b/actionpack/lib/action_dispatch/journey/router.rb
index 809bfcbe8a..9987a9bfa1 100644
--- a/actionpack/lib/action_dispatch/journey/router.rb
+++ b/actionpack/lib/action_dispatch/journey/router.rb
@@ -43,6 +43,10 @@ module ActionDispatch
req.path_info = "/" + req.path_info unless req.path_info.start_with? "/"
end
+ parameters = route.defaults.merge parameters.transform_values { |val|
+ val.dup.force_encoding(::Encoding::UTF_8)
+ }
+
req.path_parameters = set_params.merge parameters
status, headers, body = route.app.serve(req)
@@ -67,6 +71,7 @@ module ActionDispatch
rails_req.path_info = match.post_match.sub(/^([^\/])/, '/\1')
end
+ parameters = route.defaults.merge parameters
yield(route, parameters)
end
end
@@ -119,7 +124,7 @@ module ActionDispatch
routes.map! { |r|
match_data = r.path.match(req.path_info)
- path_parameters = r.defaults.dup
+ path_parameters = {}
match_data.names.zip(match_data.captures) { |name, val|
path_parameters[name.to_sym] = Utils.unescape_uri(val) if val
}