我有Michael Hartl的“ Ruby on Rails教程”中的示例应用程序。
如果我单击“忘记密码”,则会收到电子邮件通知,如果单击链接“重置密码”,则会被重定向到不存在的错误应用程序,并且只能看到空白页面。
https://wrong.com/password_resets/WTk_raloURf8I8sCaXNNkg/edit?email=tatyana_p%70yahoo.com
该错误的应用较早存在,但已被删除。 下面的代码显示了正确的主机,但是重定向发生在错误的主机上。
ENV['SENDGRID_USERNAME']
和ENV['SENDGRID_PASSWORD']
是正确的。
我在代码中的其他任何地方都找不到错误的主机名,并将其更改为正确的主机名。
config / environments / production.rb
config.consider_all_requests_local = false
config.action_controller.perform_caching = true
config.action_mailer.raise_delivery_errors = true
config.action_mailer.delivery_method = :smtp
host = 'correct_host.herokuapp.com'
config.action_mailer.default_url_options = { host: host }
ActionMailer::Base.smtp_settings = {
:address => 'smtp.sendgrid.net',
:port => '587',
:authentication => :plain,
:user_name => ENV['SENDGRID_USERNAME'],
:password => ENV['SENDGRID_PASSWORD'],
:domain => 'heroku.com',
:enable_starttls_auto => true
}
如果我复制并粘贴单击“重置密码”时获得的地址, 并在正确的地址上更改了错误的地址-我在正确的字段中输入了密码并确认了密码。
答案 0 :(得分:0)
如果您使用的是Devise及其默认的邮件视图,建议您检查Rails.application.routes.default_url_options
(因为Devise使用edit_password_url
路径助手来构建url)。
答案 1 :(得分:0)
您需要为正确的主机进行提交
首先转到您的master
分支
git checkout master
然后用正确的主机编辑您的config/environments/production.rb
。
然后
git add config/environments/production.rb
git commit -m "Right host"
git push heroku