我记得在网上的某个地方看到过这个,但我知道很难找到有关它的信息。在 Rails 3.1 中,我在会话控制器的开头有一个方法 force_ssl,我只想在生产环境中调用它,我该怎么做?
为了澄清,代码看起来像这样
class SessionsController < ApplicationController
force_ssl
end
我记得在网上的某个地方看到过这个,但我知道很难找到有关它的信息。在 Rails 3.1 中,我在会话控制器的开头有一个方法 force_ssl,我只想在生产环境中调用它,我该怎么做?
为了澄清,代码看起来像这样
class SessionsController < ApplicationController
force_ssl
end
我有一个类似的问题。force_ssl 通过使用 capybara 和 selenium 进行测试引起了问题。这解决了我的问题,测试现在正在运行:
force_ssl if Rails.env.production?
我在某些控制器中使用上面的行。例如在 SessionController 和 UserController 中。
Rails.env.production?
如果当前环境是“生产”,则返回 true。更一般地,Rails.env.somestring?
返回 true if Rails.env == "somestring"
。从那里你应该很好。
** 编辑 **
实际上,有一种更简单的方法可以仅在生产中使用 ssl。看看这篇文章