问题描述
|
无论出于何种原因,当用户从生产服务器通过我们的应用程序向我们发送更改密码链接的邮件时,他们将获得一个绝对的URL,而没有冒号http://。结果,人们抱怨链接无效。
该问题仅发生在我的生产环境中,但是我在
/config/environments/production.rb
中设置了此设置:
config.action_mailer.default_url_options = { :host => \'http://www.blah.com\' }
所以我不确定可能是什么问题。我还在整个站点中搜索了字符串“ http // \”,以查看它是否只是某个地方的错字,但没有骰子。
confirmation_instructions.html.erb
本身保持不变,并且这样生成链接:
<p><%= link_to \'Confirm my account\',confirmation_url(@resource,:confirmation_token => @resource.confirmation_token) %></p>
那么,什么废话会导致我的服务器从http://丢弃::?有人遇到过这个问题吗?关于如何解决它的任何理论?提前致谢!
解决方法
我也遇到了这个问题。问题(奇怪)是您在default_url_options(:host => \'http://www.blah.com \')中使用了完整URL。如果您输入www.blah.com,它似乎可以工作。昨晚我遇到了这个问题,这对我来说是最快的解决方法。
, 创建新的Mailer扩展Devise :: Mailer并覆盖他的方法:
def reset_password_instructions(record)
end
def confirmation_instructions(record)
end
def unlock_instructions(record)
end
接下来转到config / initializers / devise.rb并在config.mailer之前删除哈希
在此放置您自己的邮件程序。
就这样