我們目前正在爲ROR 3.2開發自定義cms引擎。在這個過程中,有幾個類的類型來源於我們想要成爲我們的Rails應用程序中的第一類公民,這意味着它們應該位於應用程序的應用程序文件夾下,並且它是插件。從應用中的自定義文件夾中的名稱空間自動加載
目前我們有以下幾種類型:
- 數據源
- 數據類型
- 查看
我創建的應用程序文件夾下multible目錄來容納這些:
- app/data_source
- 應用程序/ DATA_TYPE
- 應用程序/視圖
更多類型將會跟進,我用這麼多的目錄污染app文件夾有點擔心。因此,我想將它們移動到保存由cms定義的所有類型的子目錄/模塊中。
所有類應該是內部的MyCms命名空間和目錄結構應該是這樣的:
- 應用程序/ my_cms/DATA_SOURCE
- 應用程序/ my_cms/DATA_TYPE
- 應用程序/ my_cms /圖
但是現在我遇到了自動加載的問題,因爲rails默認的自動加載將會忽略這樣的路徑:
- 應用程序/ DATA_SOURCE/my_cms
- 應用程序/ DATA_TYPE/my_cms
- 應用程序/視圖/ my_cms
但這種方式在一個目錄下我也不會分組的所有對象類型。
我想要的有點類似於孤立引擎的視圖分組。例如,在Devise中,所有視圖都分組在views/devise子目錄中。
任何想法如何實現而不需要太多的自定義實現?
如果我想他們bo命名空間?命名空間會帶來這樣的優勢,即來自cms的所有內容都將被封裝。另外,IDE中的自動完成功能會大大增強,因爲我可以輸入MyCms ::,執行自動完成功能並查看所有重要的類。 – room13
更新了答案。 – moritz
Thanxs。這已經很不錯了,但是還有什麼是子目錄。這意味着數據源不在data_source文件夾下面...... – room13