Rails仅在指定的控制器上强制ssl

时间:2013-02-05 04:22:52

标签: ruby-on-rails ruby ssl

我有一份ssl证书,用于https://secure.mydomain.com。我想只在某些控制器上使用ssl,而不是在整个应用程序中使用ssl。我已经在线查看,似乎无法找到有关如何为指定控制器启用ssl的完整而准确的教程。

我知道我可以使用下面的配置ssl,但它不能为我提供服务,因为它支持ssl网站范围

config.force_ssl = true

如何告诉rails只在特定控制器上使用ssl而不是整个应用程序?

1 个答案:

答案 0 :(得分:8)

您可以使用routes.rb中的约束来执行此操作:

resource :account, :constraints => { :protocol => "https", :subdomain => "secure" }

此外,如果您有许多安全路线,并且想要干涸,可以为您的安全路线创建scope

scope :constraints => { :protocol => "https", :subdomain => "secure" } do

  ...[secure routes]...

end