为什么Rails测试环境中的机架env哈希是空的?
在我的Rails应用程序中,我正在访问我的一个控制器操作中的env哈希。
有点像:
def my_before_filter env['some.key'] = "Something or other" end
这对我的要求非常有用。
如果我在测试环境中启动我的Rails应用程序,并访问如下操作:
# /users in UsersController#index def index puts env.inspect end
然后,env哈希的内容按预期输出到控制台。
当我从RSPec示例中获取此操作时,输出是空哈希?
it 'should get the index action' do get :index end .....{}.... # rspec output
为什么env哈希是空的?
我已经构建了一个虚拟轨道应用来展示这一点
使用
request.env
而不仅仅是控制器代码中的env。
例如/
def index puts request.env.inspect end
希望有帮助吗?
另请注意:在使用github repo时,您需要在运行服务器时删除public / index.html以使根路由起作用。