在Mailer中创建包含链接的邮件

时间:2018-05-31 06:48:36

标签: ruby-on-rails

我创建了一个可以正常工作的邮件,只要我不在正文中添加链接。 我希望收到一封电子邮件,一旦在平台上向他发送消息,就会发送给收件人。

<%= link_to "See message", @message %>似乎不起作用。有没有针对这个问题的具体方法?到目前为止我所看到的一切都不是很清楚。

错误消息是:

ActionController::UrlGenerationError in Rails::Mailers#preview

Message-mailer.rb文件:

class MessageMailer < ApplicationMailer

  def new_message(message)
    @message = message

    @title = message.title
    @from_first_name = User.find_by_id(message.user_id).first_name
    @from_last_name = User.find_by_id(message.user_id).last_name


    mail to: @message.user.email,
         subject: "New Message: #{@message.title}"

  end
end

1 个答案:

答案 0 :(得分:0)

Mailer不在响应堆栈中,您需要指定主机或使其默认为env。

类似的答案Link和行动邮件Link

<p>Hi <%= "#{@email}"%>,</p>
<p>
    Message Link: <%=  link_to "See Message", 
                        message_url(id: @message.id, host: "http://localhost:3000")%>    
</p>

# development.rb - for default
config.action_mailer.default_url_options = { :host => "localhost" }