Ruby 使用机架中间件在每个请求上添加api_密钥

Ruby 使用机架中间件在每个请求上添加api_密钥,ruby,devise,rack,middleware,activeresource,Ruby,Devise,Rack,Middleware,Activeresource,我使用Desive token_身份验证服务和ActiveResource客户端。我希望自动设置:每个请求中都有auth_令牌参数 我试过了,但没用 class AuthApp def initialize(app) @app = app end def call(env) status, headers, response = @app.call(env) request = Rack::Request.new(en

我使用Desive token_身份验证服务和ActiveResource客户端。我希望自动设置:每个请求中都有auth_令牌参数

我试过了,但没用

class AuthApp

    def initialize(app)
        @app = app
    end

    def call(env)
        status, headers, response = @app.call(env)

        request = Rack::Request.new(env)
        request.params[:auth_token] = 'jCxKPj8wJJdOnQJB8ERy'

        [status, headers, response]
    end

end

有什么想法吗?

如果您最近有一份包含的机架副本,您可以使用
rack::Request#update_param

request = Rack::Request.new(env)
request.update_param :auth_token, 'jCxKPj8wJJdOnQJB8ERy'

这将在中间软件(和Rails)之间传递的
env
中保持不变。

我遇到了完全相同的问题。事实上,我让它在Rails 3.0.7和旧版本的Rack中工作。现在,坏了。我可以在Rack应用程序中看到,新合并的参数在那里,但它们不是为了进入Rails而挂在一起的。这似乎不在gem发布的版本中,master和gem发布的版本都是1.4.1,只有master有这个?我遗漏了什么吗?你是对的-此功能不在1.4.1中。希望他们能尽快发布1.5。。。好久不见了,谢谢你的提醒。。也就是说,你的代码和参考仍然帮助我得到了答案,所以谢谢。