2011-06-14 166 views
0

我正在嘗試構建一個rails解決方案,它將有更多的一個區域,例如我有一個面向經理的另一個用戶和其他管理員。因爲每個區域都有一些控制器,我不認爲將所有控制器放在一個地方是一個好主意,因爲會有很多控制器,並且更難以管理代碼,我也希望能夠像使用api一樣使用應用程序的某些部分。以下是我心目中的解決方案應該如何構造:Rails解決方案結構

/ 
    product_library 
    users_library 
    managers 
    app 
    config 
    public 
    .... 
    users 
    app 
    config 
    public 
    .... 
    admin 
    app 
    config 
    public 
    .... 
    shared 
    app 
    config 
    public 
    .... 

我怎麼能建立一個軌道解決方案,可以讓我從product_library和user_library實例類,並允許我使用一些功能或視圖來自共享(項目或庫)? 如果我的構思解決方案的想法不好,請讓我知道,我願意提供更好的結構建議。請記住,我需要產品庫和用戶庫的單獨部件,因此可用於其他項目。此外,歡迎任何有關大型鐵軌項目結構的文檔。

回答

2

你想要在Rails的普通結構中做,但在每個MVC組件下都有子文件夾。

app 
    controllers 
    managers 
    users 
    admin 
    shared 
    models 
    "By default Rails doesn't expect folders in here but it can be done...see below"   
    views 
    managers 
    users 
    admin 
    shared 

請參閱this answer如果你想分開你的模型。

+0

感謝您的回答,它非常有幫助,它給了我一個關於如何構建未來應用程序以及如何重構其他應用程序的想法。 – Mihai 2011-06-15 07:37:50

3

你最好的選擇可能是分開申請。每個指向相同的數據庫。你可以把你的product_library和users_library的東西放在一個gem中,由每個應用加載。或者只是把它放在貧民窟裏,然後把這些庫文件放到一個符號鏈接到每個應用程序的目錄中。

+1

@Mihai這是我看過之前做過的事情的主要方式。您也可以查看Rails引擎,它們就像活動模板應用程序,您可以將它們作爲寶石或插件包含到您的應用程序中。關於使用和創建引擎的一個很好的資源是[Crafting Rails Applications](http://www.amazon.com/Crafting-Rails-Applications-Development-Programmers/dp/1934356735/ref=sr_1_1?ie=UTF8&qid=1308085594&sr=8 -1)由主要的Rails核心貢獻者Jose Valim完成。 – 2011-06-14 21:07:02

+0

這是最有意義的..特別是如果你需要在其他項目中使用產品/用戶的東西。 – 2011-06-14 21:26:33

+0

我的開發機器在Windows 7上。我將使用產品和用戶庫的寶石想法。但對於項目結構,我認爲NullRef擁有的解決方案更好。 – Mihai 2011-06-15 13:16:41