2017-07-24 37 views
0

在rails控制器中,正在使用两行代码。如何将新的键值对添加到Rails中的request.env对象中

security_data = request.env['HTTP_X_SECURITY_DATA'] 
security_hash = request.env['HTTP_X_SECURITY_HASH'] 

我想了解如何/何时/何这些键HTTP_X_SECURITY_DATAHTTP_X_SECURITY_HASH设置为request.env散列或对象。

我已阅读this博客,但我没有得到如何添加我们自己的新键值。

任何帮助表示赞赏,谢谢。

回答

1

您可以添加或通过创建中间件应用程序删除env任意键:

class AddHeaderMiddleware 
    def initialize(app) 
    @app = app 
    end 

    def call(env) 
    env['YOUR_KEY_HERE'] = 'your_value' 
    @status, @headers, @response = @app.call(env) 
    [@status, @headers, @response] 
    end 
end 

您可以到env添加关键内部call方法。

+1

不要忘记在'application.rb'(或环境特定配置)文件中注册这个中间件。像:'config.middleware.use“AddHeaderMiddleware”'。 –

+0

另外,我不认为你应该使用'@status,@headers,@ response'变量,你可以直接返回'@ app.call(env)',因为它返回一个数组。 –

相关问题