如何在Rails 3.0中替换Rspec的ENV [“RAILS_ENV”] || ='test'?

时间:2011-02-10 22:18:35

标签: ruby-on-rails-3 rspec2 rspec-rails

我正在使用rails (3.0.4)rspec-rails (2.5.0). When I run rails生成包含此行的rspec:install it produces spec_helper.rb`:

ENV["RAILS_ENV"] ||= 'test'

当我运行rake spec时,我在终端上收到此警告:

DEPRECATION WARNING: RAILS_ENV is deprecated. Please use ::Rails.env.

这并不令人讨厌,因为它只在我的Spork.prefork内运行一次,但如果可能的话,我想过去弃用。我是Rails的新手,并没有在rspec-rails issues或其他任何地方找到这一点。

2 个答案:

答案 0 :(得分:7)

GitHub issue中重复我的回复:

该警告告诉您不推荐使用常量RAILS_ENV,而不是环境变量ENV["RAILS_ENV"]。如果您克隆Rails repo并查看v3.0.4标记并搜索RAILS_ENV,您会看到Rails本身在多个地方使用ENV["RAILS_ENV"]

必须来自您应用中的其他位置。

答案 1 :(得分:2)

必须是Rails 3.0.4中的新功能。这应该有效:

从spec / spec_helper.rb

中删除ENV["RAILS_ENV"] || = 'test'

查找require rspec/rails行。

在其后立即添加::Rails.env ||= 'test'

在rspec-rails跟踪器上打开一个问题是个好主意,因为这需要更改。