现在我正在使用Ruby on Rails 5开发我的首个网站。 我已经在Heroku上启动了我的网站。 在我测试时,我发现帐户激活链接和密码重置链接不是完全链接的事实,只是转到我网站的登录页面。 实际上UserMailer现在通过Heroku上的Sendgrid运行良好,用户收到确认电子邮件并且他或她点击了链接,然后没有进入密码重置页面,只是重定向到我的网站的登录页面:即https://mysite.herokuapp.com。 那是为什么?
我的production.rb文件如下。
config.action_mailer.raise_delivery_errors = true
config.action_mailer.delivery_method = :smtp
config.action_mailer.default_url_options = { :host => "mysite.herokuapp.com" }
config.action_mailer.perform_deliveries = true
ActionMailer::Base.smtp_settings = {
:address => 'smtp.sendgrid.net',
:port => '587',
:authentication => :plain,
:user_name => ENV['SENDGRID_USERNAME'],
:password => ENV['SENDGRID_PASSWORD'],
:domain => 'mysite.herokuapp.com',
:enable_starttls_auto => true
}
电子邮件模板的password_reset_html.erb也如下所示。
<h2>Password reset</h2>
<h5>To reset your password click the link below:</h5>
<%= link_to "Reset password", edit_password_reset_url(@user.reset_token, email: @user.email) %></a>
<p>This link will expire in 60 minutes.</p>
<p>
If you did not request your password to be reset, please ignore this email and
your password will stay as it is.
</p>
例如,确认电子邮件中的确认链接如下所示。 https://mysite.herokuapp.com/password_resets/X5_WORgqIw4eP7vdKins3g/edit?email=apolloyr%40yahoo.com
一切都很好,但最后一件事 - 确认链接重定向到我网站的目标网页,而不是转到密码重置页面。
在这种情况下我该怎么办?如果您有任何想法,请告诉我,我将不胜感激。