Rails:有没有Engine.root?

Rails.root返回一个Path对象,指定一个Rails项目的根。

Rails引擎是否有一个equivilent? 像Engine.root ? 如果不是的话,我还可以如何从Rails引擎的根目录build立一条path?

可以说你的引擎文件是这样设置的:

 module MyEngine class Engine < Rails::Engine #...... end end 

您可以像这样调用Engine类的根:

 MyEngine::Engine.root 

约翰的回答是对的,但是我会把这件事清理一下:

当你在你的路由文件中安装引擎时,首先添加一个别名。

 mount YourEngineNameHere::Engine => '/optional_namespace', as: 'your_engine_name' 

然后做your_engine_name.root_url