- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
rails 3.1 中的 force_ssl 函数被硬编码为忽略开发环境,而不是测试。这在我的(最小测试)测试中给了我重定向错误。是设置我的测试服务器以支持 ssl 的解决方案(如果是,如何?)。如果不是,我是否应该猴子修补 force_ssl 以忽略测试中的请求?
def force_ssl(options = {})
host = options.delete(:host)
before_filter(options) do
if !request.ssl? && !Rails.env.development?
redirect_options = {:protocol => 'https://', :status => :moved_permanently}
redirect_options.merge!(:host => host) if host
flash.keep
redirect_to redirect_options
end
end
end
编辑 找到了这条链,它证实了其他人认为这是一个问题,但看起来还没有提交修复:https://github.com/rails/rails/pull/2630
最佳答案
替代整个应用程序的猴子修补的另一种选择是仅在您的测试套件中覆盖 force_ssl
。例如,在 test/test_helper.rb
中,您可以添加:
# We don't want SSL redirects in our test suite
module ActionController::ForceSSL::ClassMethods
def force_ssl(options = {})
# noop
end
end
关于ruby-on-rails - 人们如何测试 rails 3.1 + force_ssl?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8989361/
rails 3.1.3 有了 force_ssl,我一遍又一遍地得到这个重定向,它永远不会结束。我要去 https 网址,所以我不确定为什么它会提示。想法? Started GET "/app/adm
我有以下路线: resources :widgets do resources :orders end 所以一个请求,例如至/widgets/1/orders/new转到 OrderControl
测试 Rails 4. 在 Rails 3 中,将 force_ssl 放在我的 Controller 顶部,强制 ssl 仅用于生产。这在开发中被忽略,这是我想要的行为,并且符合 force_ssl
我正在运行 Rails 3.1 并尝试将上面的行放在 development.rb 和 application.rb 中(不是同时),但它似乎没有做任何事情。我的请求仍在 HTTP 上运行。这不是要强
我正在将一个应用程序迁移到 heroku,但在 ssl 和重定向方面遇到了一些问题。 我在 Rails 3.1 上,我尝试在环境 production.rb 中使用中间件强制使用 ssl。我都试过将它
在之前的question我发现我应该设置 nginx ssl 终止,而不是让 Rails 处理加密数据。 那为什么会出现下面的情况呢? config.force_ssl = true 我看到这在生产配
rails 3.1 中的 force_ssl 函数被硬编码为忽略开发环境,而不是测试。这在我的(最小测试)测试中给了我重定向错误。是设置我的测试服务器以支持 ssl 的解决方案(如果是,如何?)。如果
如果我将它放在 config/environments/production.rb 中,我的站点将全部变为使用 301 重定向(永久)的 SSL。 config.force_ssl = true 如何
我正在尝试让 force_ssl 工作。我的意思是我想将尝试通过应用程序本身通过 http 连接到 https 的人重定向。 该应用程序是基于 Nginx 的 dockerized 发布版本。实际上
我想让我的 API Controller 使用 SSL,所以我在我的 nginx.conf 中添加了另一个 listen 指令 upstream unicorn { server unix:/tm
我想在除我的着陆页之外的所有路由上强制执行 SSL。我尝试在我所有的 Controller 中设置 force_ssl,对于包含 root 的 Controller ,我做了: force_ssl :
我有一个 Rails 3.2.13 应用程序,我正在尝试为 Nginx 和 Unicorn 配置 SSL。我希望能够将某些 Controller 和某些 Controller 操作告知“force_s
我在 config/application.rb 中发现 config.force_ssl = false,尽管该域具有 SSL 证书,但它没有被定义为 true。将其设置为 false 是否有任何特
我正在运行一个 Rails 3.1.4 应用程序,它需要一些页面使用 force_ssl,但我不想让其他页面使用 SSL。是否有与 force_ssl 相反的东西,例如 force_http?问题是我
场景 我正在通过 nginx 运行 Phusion Passenger。 我已将 nginx 配置为使用 SSL 并将所有 HTTP 流量重新路由到 HTTPS。 我是否仍需要在我的 Rails 应用
看完this ,听起来 config.force_ssl = true 应该是默认值,为什么 Rails 团队在创建新应用程序时没有将其设为默认值(在 config/environments/prod
我正在开发一个 Rails 3.1.0 应用程序,它需要根据用户在某些页面中使用 ssl。 我在 config/enviroments/staging.rb 中将 config.force_ssl 设
除了 message#new Controller 之外,我需要在我的应用程序中的所有路由上强制使用 SSL。 在 config/environments/production.rb 中,我有: co
在我的 production.rb 中,我有 config.force_ssl = true 并希望提供异常(exception)。看起来这应该有效(找不到如何回到 3.2.19): class
2 月底,Shopify 将 force_SSL 选项设置为 true(即使对于开发商店),这对我来说是个问题,因为我在本地(使用本地主机)开发 Shopify 应用程序,而我的计算机没有 SSL证书
我是一名优秀的程序员,十分优秀!