为什么我的Rails.root为零?

Bla*_*man 15 ruby-on-rails

我试图在我的application.rb中引用Rails.root,但它是零,为什么呢?

Tho*_*ory 11

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

Rails.rootrails/railties/lib/rails.rb中定义

def root
  application && application.config.root
end
Run Code Online (Sandbox Code Playgroud)

application.rb,application尚未创建实例,因为Application正在定义类...应用程序仅在environment.rb以下情况下初始化:

# Load the rails application
require File.expand_path('../application', __FILE__)

# Initialize the rails application
Testapp::Application.initialize!
Run Code Online (Sandbox Code Playgroud)

编辑

解决方法就在我们眼前:

my_rails_root = File.expand_path('../..', __FILE__)
Run Code Online (Sandbox Code Playgroud)


小智 1

您使用的是 Rails 3.x 吗?如果没有,您应该使用RAILS_ROOT而不是Rails.root.