有什么区别' env'和' request.env'在Rails控制器?

时间:2015-10-18 07:06:48

标签: ruby-on-rails rspec

我使用rspec为我的应用程序编写测试。要授权我在标题中发送token

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

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

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

1 个答案:

答案 0 :(得分:7)

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

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