繁体   English   中英

Rails3 + Devise:edit_password_url 吐出 http//www.blah.com(http 没有冒号!)

[英]Rails3 + Devise: edit_password_url spits out http//www.blah.com (No colon the http!)

当用户从我们的生产服务器收到我们应用程序中的更改密码链接时,无论出于何种原因,他们都会收到一个绝对的 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 改为它似乎可以工作。 我昨晚遇到了这个问题,这对我来说是最快的解决方法。

创建新的邮件扩展 Devise::Mailer 并覆盖他的方法:

def reset_password_instructions(record)
end
def confirmation_instructions(record)
end
def unlock_instructions(record)
end

接下来 go 到 config/initializers/devise.rb 并在 config.mailer 之前删除散列 在这个地方设置你自己的邮件。

就这样

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM