aboutsummaryrefslogtreecommitdiffstats
path: root/actionview/lib/action_view/helpers/url_helper.rb
diff options
context:
space:
mode:
authorRafael Mendonça França <rafaelmfranca@gmail.com>2013-08-01 10:43:45 -0300
committerRafael Mendonça França <rafaelmfranca@gmail.com>2013-08-01 10:46:35 -0300
commit69339e54d3464c6e4193ce744f975fd52b348449 (patch)
tree13c24ca75710c2ee442340e12de85fcdafa124fd /actionview/lib/action_view/helpers/url_helper.rb
parent4e00ac3ca46ae78af3d5385bb2fec4ff480d3e29 (diff)
downloadrails-69339e54d3464c6e4193ce744f975fd52b348449.tar.gz
rails-69339e54d3464c6e4193ce744f975fd52b348449.tar.bz2
rails-69339e54d3464c6e4193ce744f975fd52b348449.zip
Fix `current_page?` when the URL contains escaped characters
In some cases webservers like nginx send the escaped characters lowercased to the Rails application. The current_page? helper was comparing the escaped strings that are different since Ruby escapes the URL using uppercased characters.
Diffstat (limited to 'actionview/lib/action_view/helpers/url_helper.rb')
-rw-r--r--actionview/lib/action_view/helpers/url_helper.rb4
1 files changed, 2 insertions, 2 deletions
diff --git a/actionview/lib/action_view/helpers/url_helper.rb b/actionview/lib/action_view/helpers/url_helper.rb
index a4f04b0b3b..6bfcfad60a 100644
--- a/actionview/lib/action_view/helpers/url_helper.rb
+++ b/actionview/lib/action_view/helpers/url_helper.rb
@@ -536,9 +536,9 @@ module ActionView
request_uri = url_string.index("?") ? request.fullpath : request.path
if url_string =~ /^\w+:\/\//
- url_string == "#{request.protocol}#{request.host_with_port}#{request_uri}"
+ URI.unescape(url_string) == URI.unescape("#{request.protocol}#{request.host_with_port}#{request_uri}")
else
- url_string == request_uri
+ URI.unescape(url_string) == URI.unescape(request_uri)
end
end