2012-02-14 204 views
4

我已經在Rails應用程序中構建了一個自定義管理面板,該應用程序允許通過gui界面編輯某些模型的內容。我最初設計的「管理員」應用程序充當父應用程序(通過其MVC,Gemfile,遷移等),並創建了子應用程序(在稱爲前端的目錄中)充當管理員模型的網站界面。子應用程序從父管理應用程序繼承MVC,允許設計網站前端,並在現有管理架構的基礎上構建,而不必爲每個新項目不斷重新開發管理站點。其他應用程序中的包裝Rails應用程序

我的本地機器上的結構目前看起來是這樣的:

Administration Application <-- Individual git repo 
    -> app 
     -> admin 
    -> config 
    ... 
    -> frontends 
     -> Website_1 <-- Individual git repo 
      -> app 
      -> config 
      ... 
     -> Website_2 <-- Individual git repo 
      -> app 
      -> config 
      ... 

目前前端是由一個簡單的frontend.yml文件中加載管理應用程序之前,在初始化的前端應用程序的配置標識。

但是,我覺得這是不謹慎的,但是,像這樣嵌套結構。首先,git repos的嵌套在我的定位機器上很混亂,更重要的是,要在相對較短的時間內切換項目的上下文非常困難。例如,如果我想從Website_1切換到Website_2,我必須退出rails server並運行切換前端的rake任務。當前端使用不同的管理應用程序分支時,它也變得更加麻煩。爲了繼續開發我的項目,我發現自己花費了大量時間在git和rake之間切換上下文。

我想更改應用程序的結構,其中每個前端都是自己的獨立Rails應用程序。看起來,這樣可以更簡單地切換開發環境 - 一次允許多個應用程序在rails server中運行,測試等。我還希望能夠繼續在git下安裝管理應用程序 - 因爲有貫穿一系列分支和標籤的不同風格的應用程序。

什麼是最好的方法來處理這種重新配置?我正在考慮創建一個管理應用程序的寶石,並從Bundler加載它。

+0

您正在使用哪個版本的Rails?你可能想看看引擎。 – colinross 2012-02-22 00:25:42

+0

這個Rails版本是3.2.1。 – 2012-02-22 21:30:10

回答

3

我認爲寶石是你最好的選擇。具體來說,我會考慮使用引擎;發動機是一個寶石使用這樣的事情那是你的routes.rb內直接安裝:

mount Administration::Engine => '/administration' 

引擎基本上是小型應用程序直接安裝到其他應用程序,這聽起來像你需要在這裏正是。請致電Rails engine documentation。這裏的a handy walkthrough you can follow包括一個鏈接到enginex,一個快速發電機引導引擎寶石。

相關問題