You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ruby on Rails示例应用密码重置链接跳转错误问题求助

解决Rails密码重置链接指向旧域名的问题

这种情况我之前帮朋友排查过,你代码里的production.rb配置看起来完全没问题,大概率是部署缓存或者配置未生效导致的,给你几个具体的排查和解决步骤:

  • 确认生产环境的实际配置
    登录Heroku控制台,运行以下命令进入生产环境的Rails控制台:

    heroku run rails console -e production
    

    然后输入以下代码查看当前生效的邮件默认host:

    Rails.application.config.action_mailer.default_url_options
    

    如果输出的host不是你设置的correct_host.herokuapp.com,说明你的代码部署没成功,或者有其他配置覆盖了这个值。

  • 检查是否有重复配置或环境变量覆盖
    排查这几个地方:

    • 项目根目录的config/application.rb里有没有设置default_url_options,如果有会覆盖生产环境的配置;
    • 查看Heroku的环境变量,有没有类似DEFAULT_URL_OPTIONS或者HOST这类变量,可能会被Rails自动读取并覆盖配置;
    • 检查config/initializers目录下的文件,有没有额外的邮件配置代码。
  • 清除Heroku缓存并重新部署
    旧的配置可能被缓存了,先清理缓存:

    heroku repo:purge_cache
    

    然后重新推送代码部署:

    git push heroku main # 如果你用的是main分支,否则替换成你的分支名
    
  • 确认邮件模板的链接生成方式
    打开密码重置邮件的模板(一般在app/views/user_mailer/password_reset.html.erb或者对应的text模板),确保链接是用Rails的URL helper生成的,比如:

    <%= edit_password_reset_url(@reset_token, email: @user.email) %>
    

    而不是硬编码的https://wrong.com/...(不过你说代码里没找到错误host,这个可以快速确认下)

按照这些步骤排查下来,基本就能解决链接指向旧域名的问题了。我之前遇到的情况就是缓存没清,重新部署后就正常了。

内容的提问来源于stack exchange,提问作者T M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:42:59