为什么我的Rails.root为零?

时间:2010-11-21 21:59:27

标签: ruby-on-rails

我正在尝试在我的application.rb中引用Rails.root,但它没有,为什么会这样?

3 个答案:

答案 0 :(得分:9)

我可以解释原因,但我不能给你一个解决方法。

Rails.rootrails/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