Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 使用Rack::SSLEnforcer时,请从设计确认链接中删除HTTPS_Ruby On Rails 3_Ssl_Devise - Fatal编程技术网

Ruby on rails 3 使用Rack::SSLEnforcer时,请从设计确认链接中删除HTTPS

Ruby on rails 3 使用Rack::SSLEnforcer时,请从设计确认链接中删除HTTPS,ruby-on-rails-3,ssl,devise,Ruby On Rails 3,Ssl,Devise,我正在Rails应用程序中使用Desive和Rack::SSLEnforcer。当用户收到确认电子邮件时,它看起来像: 该链接由Deviate的确认url方法自动生成 此链接不应连接端口443。理论上,我不需要指向https地址的链接,但如果是,也可以。至少,前端应该是https,而不是后端的端口443 有什么想法吗?我通过安装“设计”视图和自定义生成的链接解决了这个问题。可以使用以下命令安装设备视图: rails generate devise:views 请务必阅读Desive文档,因为

我正在Rails应用程序中使用Desive和Rack::SSLEnforcer。当用户收到确认电子邮件时,它看起来像:

该链接由Deviate的确认url方法自动生成

此链接不应连接端口443。理论上,我不需要指向https地址的链接,但如果是,也可以。至少,前端应该是https,而不是后端的端口443


有什么想法吗?

我通过安装“设计”视图和自定义生成的链接解决了这个问题。可以使用以下命令安装设备视图:

rails generate devise:views
请务必阅读Desive文档,因为在执行此操作时,您可能需要自定义一些其他内容(取决于您的具体情况)

完成后,您现在可以在以下位置编辑文件:

app/views/devise/mailer/confirmation_instructions.html.erb
要使链接始终生成为SSL,只需将
link\u自定义为
调用:

<%= link_to 'Confirm my account', confirmation_url(@resource, :confirmation_token => @resource.confirmation_token, :protocol => "https") %>
@resource.confirmation\u令牌:协议=>“https”)%>

URL中的协议应该是
https://
,如果它真的是SSL。URL是自动生成的--我应该指定它--我已经更新了问题。这似乎有效。从理论上讲,有一种方法可以在全球范围内禁用附加的443是很好的,但这解决了我的问题。谢谢