如何告诉Devise使用https(不是http)进行所有帐户确认和密码提醒等链接?
[注意:我不是在寻找将所有 http重定向到https的解决方案,我只需要设计以确保它创建的链接使用https]
我们的rails 3应用程序使用设计,并且应用程序在https下运行正常,但是,设计总是使用http来通过电子邮件确认和密码链接将其发送给用户。
在我的环境文件中,我尝试更改:
config.action_mailer.default_url_options = { :host => "app1.mydomain.com" }
到
{ :host => "https://app1.mydomain.com" }
但可预测的设计会创建看起来像的链接 http://https//app1.mydomain.com ....(例如,它预先设置:http:的主机设置)
答案 0 :(得分:40)
default_url_options
接受与url_for
相同的哈希参数。所以你应该能够做到这一点:
config.action_mailer.default_url_options = { :protocol => 'https', :host => 'app1.mydomain.com' }
答案 1 :(得分:2)
设置协议,但也设置子目录:
config.action_mailer.default_url_options = {
:host => "www.example.com",
:protocol => 'https',
:only_path => false,
:script_name => "/app" #add this attribute if your app is deployed in a subdirectory
}