【问题标题】:How to determine the request type in Rack middleware如何确定 Rack 中间件中的请求类型
【发布时间】:2014-09-24 21:55:51
【问题描述】:

我有以下 Rack 中间件来检测旧版本的 Internet Explorer:

require 'user_agent'

module Rack
  class IERedirect

    def initialize(app, url)
      @app = app
      @redirect_url = url
    end

    def call(env)
      request = Rack::Request.new(env)
      useragent = UserAgent.new(env["HTTP_USER_AGENT"].to_s)
      path = env["PATH_INFO"]
      if (useragent.name == :ie && (useragent.version.to_i < 10))
        [ 302, {'Location'=> "#{@redirect_url}" }, [] ]
      else
        @app.call(env)
      end
    end
  end
end

我想做的是在 if 语句中添加另一个条件,即允许所有 POST 请求。这可以在中间件中实现吗?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 middleware


    【解决方案1】:

    Rack::Request 对象中有一个方法:request.post? 还有.get?.patch?.put?等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-21
      • 1970-01-01
      • 2015-07-14
      • 2011-11-19
      • 2011-08-28
      • 1970-01-01
      • 2010-12-11
      • 1970-01-01
      相关资源
      最近更新 更多