diff options
author | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2013-01-02 13:56:05 -0800 |
---|---|---|
committer | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2013-01-02 13:56:05 -0800 |
commit | f8452e8de786377ed89d777dabe7d82987f9b001 (patch) | |
tree | 763ed8a5a06b24c516ac3c06e71ad553416c8f16 /actionpack/lib | |
parent | f4dc7e3676a3a68d92772b5a466d54e430aa7b6a (diff) | |
parent | 33841a9db3e560ef062d36d14ea07f7d71dd65ab (diff) | |
download | rails-f8452e8de786377ed89d777dabe7d82987f9b001.tar.gz rails-f8452e8de786377ed89d777dabe7d82987f9b001.tar.bz2 rails-f8452e8de786377ed89d777dabe7d82987f9b001.zip |
Merge pull request #8703 from senny/backport_8700
Backport #8701, do not append a second slash with `trailing_slash: true`
Closes #8700
Diffstat (limited to 'actionpack/lib')
-rw-r--r-- | actionpack/lib/action_dispatch/http/url.rb | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/actionpack/lib/action_dispatch/http/url.rb b/actionpack/lib/action_dispatch/http/url.rb index 64459836b5..f07d5adc9b 100644 --- a/actionpack/lib/action_dispatch/http/url.rb +++ b/actionpack/lib/action_dispatch/http/url.rb @@ -43,7 +43,11 @@ module ActionDispatch params = options[:params] || {} params.reject! {|k,v| v.to_param.nil? } - rewritten_url << (options[:trailing_slash] ? path.sub(/\?|\z/) { "/" + $& } : path) + if options[:trailing_slash] && !path.ends_with?('/') + rewritten_url << path.sub(/(\?|\z)/) { "/" + $& } + else + rewritten_url << path + end rewritten_url << "?#{params.to_query}" unless params.empty? rewritten_url << "##{Journey::Router::Utils.escape_fragment(options[:anchor].to_param.to_s)}" if options[:anchor] rewritten_url |