Rails控制器中’env’和’request.env’有什么区别?

我正在使用rspec为我的应用程序编写测试。 为了授权,我在标头中发送token

 request.headers['token'] = '000000099' get :index 

在控制器端,我可以通过request.env["HTTP_TOKEN"]读取该值,但env["HTTP_TOKEN"]为空。

它们之间有什么区别,我如何设置env而不是request.env

request.env是一个ruby数组,包含有关访问用户和服务器环境的信息。 request.env是在Rails应用程序中用于提取重要信息的标准对象,例如path_inforequest_uri等。

env对于您的测试是空的,因为rspec-rails绕过了ActionController::Metal调度方法。