從Rails Edge guide:
4.3.2使用由應用
提供由於滑軌控制器通常分擔之類的認證和訪問會話變量代碼的控制器,在默認情況下,他們從ApplicationController中繼承。然而,Rails引擎的作用域是獨立於主應用程序運行,因此每個引擎都可以獲得一個有作用域的ApplicationController。該命名空間可防止代碼衝突,但引擎控制器通常應訪問主應用程序的ApplicationController中的方法。提供此訪問的簡單方法是將引擎的作用域ApplicationController從主應用程序的ApplicationController繼承。對於我們Blorgh引擎,這將改變應用程序/控制器/ blorgh/application_controller.rb做的樣子:
class Blorgh::ApplicationController < ApplicationController
end
默認情況下,發動機控制器從Blorgh繼承:: ApplicationController的。因此,在做出這個改變之後,他們將可以訪問主應用程序ApplicationController,就像它們是主應用程序的一部分一樣。
此更改的確需要引擎從具有ApplicationController的Rails應用程序運行。