簡體   English   中英

如何在郵件模板中生成正確的URL?

[英]How to generate correct URLs in mailer templates?

我正在使用Ruby on Rails 3.1.0,我想在HTML電子郵件中正確生成URL。 在我的環境文件中

config.action_mailer.default_url_options = { :host => 'my_site.org' }

在電子郵件查看文件( .html.erb )中,我聲明

<%= link_to @user.name, users_url(@user) %>

當我去查看收到的電子郵件時,生成的URL是http://users/1 ,當然是不正確的。 因此, 如何在郵件模板中生成正確的URL,以便在正文消息中具有http://my_site.org/users/1鏈接?


我也嘗試在我的mailer.rb文件中設置default_url_options

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

  def test_sending
    ...
  end
end

但這不起作用。

users_path是相對路徑(/ users / 1)。 對於電子郵件,您需要絕對路徑,因此請使用users_url(@user) ,它將改為使用http://myapp.com/users/1

您的action_mailer設置正確。

但是您應該使用_url而不是_path作為link_to,

<%= link_to @user.name, users_url(@user) %>

看到您設置了config選項。 為確保它使用絕對路徑,請使用:

<%= link_to, "My Profile", users_url(:only_path => false, @user) %>

或在鏈接中專門設置主機:

<%= link_to, "My Profile", users_url(:host => "example.com", @user) %>

在這里解釋:

ActionView助手

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM