为什么我的Rails.root为零?
我试图在我的application.rb中引用Rails.root,但它是零,为什么呢?
我可以解释原因,但我不能给你一个解决方法。
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__)
你在使用Rails 3.x吗? 如果没有,您应该使用RAILS_ROOT
而不是Rails.root
。
当我在模块和类声明之前尝试使用它时,我遇到了同样的问题。 尝试在里面使用它,看看是否有所作为,例如
module MyApp class Application < Rails::Application puts Rails.root end end