Mar*_*off 360
根据文档,#Rails.env包装RAILS_ENV:
# File vendor/rails/railties/lib/initializer.rb, line 55
def env
@_env ||= ActiveSupport::StringInquirer.new(RAILS_ENV)
end
Run Code Online (Sandbox Code Playgroud)
但是,具体看看它是如何包装的,使用ActiveSupport::StringInquirer:
在此类中包装字符串为您提供了一种更好的方法来测试相等性.Rails.env返回的值包含在StringInquirer对象中,因此不是调用它:
Run Code Online (Sandbox Code Playgroud)Rails.env == "production"你可以这样称呼:
Run Code Online (Sandbox Code Playgroud)Rails.env.production?
所以它们并不完全相同,但它们相当接近.我还没有使用Rails,但我认为#Rails.env由于使用它肯定是更具视觉吸引力的选择StringInquirer.
Sim*_*tti 29
在Rails 2.x之前,获取当前环境的首选方法是使用RAILS_ENV常量.同样,您可以使用RAILS_DEFAULT_LOGGER获取当前记录器或RAILS_ROOT获取根文件夹的路径.
从Rails 2.x开始,Rails引入了Rails一些特殊方法:
这不仅仅是化妆品的改变.Rails模块提供了使用标准常量(如StringInquirer支持)所不具备的功能.还有一些细微的差别.Rails.root不会返回一个简单的Stringbuth Path实例.
无论如何,首选方法是使用该Rails模块.常量在Rails 3中已弃用,将在未来版本中删除,可能是Rails 3.1.
| 归档时间: |
|
| 查看次数: |
157516 次 |
| 最近记录: |