summaryrefslogtreecommitdiff
blob: 605955712527ad0d2ac198973d0e667de02c0d76 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
commit e5ba382ccbfe08a1a4681e1b6ac851379eb41c7c
Author: Rafael Mendonça França <rafaelmfranca@gmail.com>
Date:   Fri Aug 28 01:36:00 2015 -0300

    Merge pull request #21402 from k0kubun/ruby20-url-helper
    
    Fix mail_to to work well with Ruby 2.0

diff --git a/actionview/lib/action_view/helpers/url_helper.rb b/actionview/lib/action_view/helpers/url_helper.rb
index b130457..97e299d 100644
--- a/actionview/lib/action_view/helpers/url_helper.rb
+++ b/actionview/lib/action_view/helpers/url_helper.rb
@@ -471,7 +471,7 @@ module ActionView
         }.compact
         extras = extras.empty? ? '' : '?' + ERB::Util.html_escape(extras.join('&'))
 
-        encoded_email_address = ERB::Util.url_encode(email_address).gsub("%40", "@")
+        encoded_email_address = ERB::Util.url_encode(email_address.to_str).gsub("%40", "@")
         html_options["href"] = "mailto:#{encoded_email_address}#{extras}".html_safe
 
         content_tag(:a, name || email_address, html_options, &block)
diff --git a/actionview/test/template/url_helper_test.rb b/actionview/test/template/url_helper_test.rb
index 10195dd..b044ebd 100644
--- a/actionview/test/template/url_helper_test.rb
+++ b/actionview/test/template/url_helper_test.rb
@@ -505,6 +505,13 @@ class UrlHelperTest < ActiveSupport::TestCase
     )
   end
 
+  def test_mail_to_with_html_safe_string
+    assert_dom_equal(
+      %{<a href="mailto:david@loudthinking.com">david@loudthinking.com</a>},
+      mail_to("david@loudthinking.com".html_safe)
+    )
+  end
+
   def test_mail_to_with_img
     assert_dom_equal %{<a href="mailto:feedback@example.com"><img src="/feedback.png" /></a>},
       mail_to('feedback@example.com', '<img src="/feedback.png" />'.html_safe)