如何在邮件程序模板中生成正确的URL?

use*_*052 3 ruby email ruby-on-rails mailer ruby-on-rails-3

我正在使用Ruby on Rails 3.1.0,我想在HTML电子邮件中正确生成URL.在我设置的环境文件中

config.action_mailer.default_url_options = { :host => 'my_site.org' }
Run Code Online (Sandbox Code Playgroud)

在电子邮件视图文件(.html.erb)中我说

<%= link_to @user.name, users_url(@user) %>
Run Code Online (Sandbox Code Playgroud)

当我去看收到的电子邮件时,生成的URL http://users/1当然不正确.那么,我如何在邮件程序模板中生成正确的URL以便http://my_site.org/users/1在正文消息中包含链接?


我也尝试default_url_options在我的mailer.rb文件中设置

class MyCustom::Mailer < ActionMailer::Base
  default_url_options[:host] = 'my_site.org'

  def test_sending
    ...
  end
end
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

MrT*_*rus 9

users_path是相对路径(/ users/1).对于电子邮件,您需要绝对路径,因此请使用users_url(@user),这将提供http://myapp.com/users/1.