2017-07-24 74 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)',因爲它返回一個數組。 –

相關問題