aboutsummaryrefslogtreecommitdiffstats
path: root/actionview/lib/action_view/helpers/url_helper.rb
diff options
context:
space:
mode:
authorClayton Smith <clayton.smith@shopify.com>2015-07-23 16:36:13 -0400
committerClayton Smith <clayton.smith@shopify.com>2015-07-23 16:56:21 -0400
commit6a387824775430fef2a0075ddd7b9d31e8c5cb48 (patch)
treedf0370e6c4649817bbc33d15f5a0425d5a1f64ad /actionview/lib/action_view/helpers/url_helper.rb
parentcdc32defcfc2ce5312c4b02e09f6cef2172843c6 (diff)
downloadrails-6a387824775430fef2a0075ddd7b9d31e8c5cb48.tar.gz
rails-6a387824775430fef2a0075ddd7b9d31e8c5cb48.tar.bz2
rails-6a387824775430fef2a0075ddd7b9d31e8c5cb48.zip
Encode the email address as prescribed in RFC 6068 section 2.
Diffstat (limited to 'actionview/lib/action_view/helpers/url_helper.rb')
-rw-r--r--actionview/lib/action_view/helpers/url_helper.rb3
1 files changed, 2 insertions, 1 deletions
diff --git a/actionview/lib/action_view/helpers/url_helper.rb b/actionview/lib/action_view/helpers/url_helper.rb
index afb1265ad9..7d92651183 100644
--- a/actionview/lib/action_view/helpers/url_helper.rb
+++ b/actionview/lib/action_view/helpers/url_helper.rb
@@ -468,7 +468,8 @@ module ActionView
}.compact
extras = extras.empty? ? '' : '?' + extras.join('&')
- html_options["href"] = "mailto:#{email_address}#{extras}"
+ encoded_email_address = ERB::Util.url_encode(email_address).gsub("%40", "@")
+ html_options["href"] = "mailto:#{encoded_email_address}#{extras}"
content_tag(:a, name || email_address, html_options, &block)
end