Rails 4 force_ssl问题?

时间:2013-06-20 20:50:01

标签: ruby-on-rails ruby-on-rails-4

测试Rails 4.在Rails 3中,将force_ssl放在我的控制器顶部强制ssl仅用于生产。这被忽略了开发,这是我想要的行为,并且符合force_ssl的文档。

在Rails 4中,我发现force_ssl强制ssl甚至用于开发,这不是我想要的行为(易于解决,但需要更多我不想要的代码)。此外,我无法在任何发行说明中找到所谓的更改位置,因此我认为这可能是一个错误。

我无法通过Google搜索在此网站上找到有关此问题的错误报告。其他人可以确认吗?此外,如果是这样,有人可以将错误报告提交给Rails(我没有设置这样做的帐户,并且如果其他人已经拥有帐户,则不想创建一个帐户)。

简单的解决方法,顺便说一句:

Rails.env.production? ? force_ssl : nil

2 个答案:

答案 0 :(得分:6)

这不是错误 - https://github.com/rails/rails/pull/5023

为您的问题提供的解决方案是

force_ssl unless Rails.env.development?

答案 1 :(得分:3)

如果像我一样,您的代码中有很多地方force_ssl,您可以使用初始化程序保留DRY:

module ActionController::ForceSSL::ClassMethods
  alias_method :original_force_ssl, :force_ssl
  def force_ssl(options={})
    original_force_ssl unless Rails.env.development?
  end
end