diff options
author | Yves Senn <yves.senn@gmail.com> | 2013-01-02 21:37:56 +0100 |
---|---|---|
committer | Yves Senn <yves.senn@garaio.com> | 2013-01-16 18:51:12 +0100 |
commit | 19e9e67f95aa2f173e73ba11b22370c31b922103 (patch) | |
tree | 31db89317b13f53668f1db47929512050f3b2b40 /actionpack/lib/action_dispatch | |
parent | 555cb0afb5a8a8e98fc982edb9e09dfaafd46380 (diff) | |
download | rails-19e9e67f95aa2f173e73ba11b22370c31b922103.tar.gz rails-19e9e67f95aa2f173e73ba11b22370c31b922103.tar.bz2 rails-19e9e67f95aa2f173e73ba11b22370c31b922103.zip |
replace regexp global in #url_for
Diffstat (limited to 'actionpack/lib/action_dispatch')
-rw-r--r-- | actionpack/lib/action_dispatch/http/url.rb | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/actionpack/lib/action_dispatch/http/url.rb b/actionpack/lib/action_dispatch/http/url.rb index 43f26d696d..e9ef9ee9f2 100644 --- a/actionpack/lib/action_dispatch/http/url.rb +++ b/actionpack/lib/action_dispatch/http/url.rb @@ -32,8 +32,12 @@ module ActionDispatch params.reject! { |_,v| v.to_param.nil? } result = build_host_url(options) - if options[:trailing_slash] && !path.ends_with?('/') - result << path.sub(/(\?|\z)/) { "/" + $& } + if options[:trailing_slash] + if path.include?('?') + result << path.sub(/\?/, '/\&') + else + result << path.sub(/[^\/]\z|\A\z/, '\&/') + end else result << path end |