重设密码时如何从电子邮件获得正确的重定向?

时间:2019-03-30 05:37:41

标签: ruby-on-rails ruby

我有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
}

如果我复制并粘贴单击“重置密码”时获得的地址, 并在正确的地址上更改了错误的地址-我在正确的字段中输入了密码并确认了密码。

  

https://correct_host.herokuapp.com/password_resets/WTk_raloURf8I8sCaXNNkg/edit?email=tatyana_p%70yahoo.com

2 个答案:

答案 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