用Rails.root替换RAILS_ROOT

时间:2012-04-19 05:47:36

标签: ruby-on-rails

我希望将已弃用的RAILS_ROOT替换为Rails.root,作为使应用程序准备好升级到Rails 3的过程的一部分。 该应用程序当前运行的版本为2.3.14,最初是在1.2

中创建的

在我的boot.rb文件的开头是行:

RAILS_ROOT =“#{File.dirname( FILE )} / ..”除非定义了?(RAILS_ROOT)

我不能在这里替换Rails.root,因为Rails未定义。

设置Rails.root的推荐方法是什么?

我认为我的问题不够明确。

  • 我知道Rails.root已经存在于Rails 2中。
  • 我可以非常愉快地在我的代码中使用Rails.root。
  • 但我不知道如何在启动时设置Rails.root。我现在出现了 使用以下行设置在boot.rb的顶部:

    RAILS_ROOT =“#{File.dirname( FILE )} / ..”除非定义了?(RAILS_ROOT)

  • 我只能更改该行以使用Rails.root,因为我会得到 错误:

    ../ config / boot.rb:3:未初始化的常量Rails(NameError)

由于 乔治

2 个答案:

答案 0 :(得分:11)

你可以这样使用

 Rails.root.join('lib/ca-bundle.crt')

试试吧

答案 1 :(得分:2)

看起来Rails.root实际上存在于Rails 2.3中:http://apidock.com/rails/v2.3.2/Rails/root/class

在2.3中,它只返回RAILS_ROOT,所以除非我弄错了,否则你可以在代码中使用Rails.root而无需其他修改。升级后,boot.rb将被替换,Rails模块也将被替换,因此您的代码应继续正常运行。

此外,如果你还没有使用它,我和我的同事发现这个插件非常有助于从2.3升级到3.0一段时间后回复:https://github.com/rails/rails_upgrade