无法在电子邮件中正确呈现链接

时间:2017-02-10 11:15:18

标签: ruby-on-rails ruby-on-rails-4

我正在尝试构建一个字符串,该字符串将作为电子邮件正文传递给UserMailer。

以下是代码:

html_text = ""
topic_object.title = "Example title"
topic_object.body = "Example body"
html_text << 'Visit the page by <a href="http://localhost.com/topic_digests/#{topic_object.slug}>" clicking here</a>.<br>'
html_text << topic_object.title
html_text << topic_object.body

然后我有这一行来发送电子邮件

UserMailer.dynamic_actual_digest(current_user.email, html_text).deliver

我的挑战是我无法使用我需要的网址正确加载clicking here文字。它没有呈现它。我尝试了link_to,我尝试了双引号,我尝试了<%= topic_object.slug %>

我认为麻烦的是,即使我使用link_to方法或a html标记,也需要在同一行上使用双引号和单引号。

我错过了什么?

1 个答案:

答案 0 :(得分:2)

使用%Q syntax构建字符串:

html_text = ""
topic_object.title = "Example title"
topic_object.body = "Example body"
html_text << %Q|Visit the page by <a href="http://localhost.com/topic_digests/#{topic_object.slug}>" clicking here</a>.<br>|
html_text << topic_object.title
html_text << topic_object.body
UserMailer.dynamic_actual_digest(current_user.email, html_text).deliver

并尝试在html_safe

中使用user_mailer.rb指令发送明确的html
def dynamic_actual_digest(email, html_text)
  mail(to: email) do |format|
    format.html { render html: html_text.html_safe }
  end
end