设计确认链接将用户重定向到heroku域而不是自定义域

JoH*_*ksi 2 ruby-on-rails heroku devise angularjs

我有一个Web应用程序:Angular中的前端和Rails中的后端.我有一个自定义域www.example.com并将用户重定向到heroku URL(example.herokuapp.com).

用户注册后,他们需要确认他们的电子邮件.当他们从我的网络应用收到电子邮件时,他们会点击该链接.顺便说一下,我使用Devise来确认用户的电子邮件.它应该带领用户www.example.com/log_in.但是,出于某种原因,用户被带走了example.herokuapp.com/log_in.如何将用户重定向到此边缘案例的自定义域?

Joe*_*l G 6

要执行此操作,您需要覆盖default_url_options环境配置文件.例如,您config/environments/production.rb可能需要以下内容:

config.action_mailer.default_url_options = {
  host: 'http://www.example.com'
}
config.action_mailer.asset_host = 'http://www.example.com'
Run Code Online (Sandbox Code Playgroud)

不管你设置hostdefault_url_options,以将内部包含通过的ActionMailer发送的电子邮件的任何链接的主机(包括设计确认/密码重置电子邮件).asset_host用作您放入电子邮件中的任何资产(例如图像)的主机,以便可以正确找到它们.