2016-02-18 55 views
0

當您生成Rails引擎時,一個生成的產品是test/dummy下的完整基本Rails應用程序。這是有道理的,你希望能夠在應用程序環境中測試引擎,但令我驚訝的是,即使對於非測試活動如rake db:migrate,似乎也需要test/dummy應用程序。我是否需要在Rails 4引擎中自定義生成的虛擬應用程序?

我嘗試從Rakefile中刪除對虛擬應用程序的引用,但它似乎是硬編碼到引擎系統中(請參閱參考engine.rake中的APP_RAKEFILE)。

我試圖將Rails應用程序轉換爲引擎,並運行到配置,加載順序等各種問題。當我放置斷點並查看調用堆棧時,它看起來至少有一些問題是原始應用程序中的配置腳本(例如boot.rb)與生成的虛擬設備之間的差異。

有人可以解釋爲什麼虛擬應用程序是必需的,它的功能是什麼?我應該期望脫離使用「原始」生成的虛擬,還是修改/定製它是不可避免的?

回答

0

您通常不必觸摸虛擬應用程序。虛擬應用程序提供了一個準系統應用程序來運行引擎(請記住,引擎不能自行運行)。當您嘗試在引擎的根目錄中執行「應用程序級別」的內容,例如運行Rake任務或測試時,它將用作應用程序。這樣引擎保持獨立,並且不必依靠外部應用程序來提供引擎運行的環境。我相信這個虛擬應用程序僅用於rake任務和測試框架。

相關問題