我正在尝试在我的application.rb中引用Rails.root,但它没有,为什么会这样?
答案 0 :(得分:9)
我可以解释原因,但我不能给你一个解决方法。
Rails.root
在rails/railties/lib/rails.rb
def root
application && application.config.root
end
在application.rb
中,尚未创建application
的实例,因为正在定义Application
类...应用程序仅在environment.rb
之后初始化:
# Load the rails application
require File.expand_path('../application', __FILE__)
# Initialize the rails application
Testapp::Application.initialize!
修改强>
解决方法就在我们眼前:
my_rails_root = File.expand_path('../..', __FILE__)
答案 1 :(得分:1)
您使用的是Rails 3.x吗?如果没有,您应该使用RAILS_ROOT
而不是Rails.root
。
答案 2 :(得分:0)
当我在模块和类声明之前尝试使用它时,我遇到了同样的问题。尝试在里面使用它,看看是否有所作为,例如。
module MyApp
class Application < Rails::Application
puts Rails.root
end
end