diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2017-08-01 16:59:37 -0500 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2017-08-01 16:59:37 -0500 |
commit | e473946d58cfdab0b16cf91cdad6bef23fcfafc3 (patch) | |
tree | 8381b3ddd0fca7ef6e9cb7f79aa53a768ecbf376 /actionpack/lib/action_dispatch/journey/router.rb | |
parent | 3d3ec20a485a109bb772cb37382040e25f5d0ded (diff) | |
parent | f9a43f28c087f8ffd35ff7c33a60c938b60f2be2 (diff) | |
download | rails-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.rb | 7 |
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 } |