在我的應用程序(JRuby中,軌道3,mongodb的)設置我的數據訪問對象(和其他「單身」)在初始化/config/initializers/app_constants.rbrails 3 - 在哪裏把應用程序啓動初始化的東西?
DATA_COLLECTION_STORE = DataCollectionStore.new(...)
SOME_OTHER_SINGLETON = SomeOtherClassTreatedLikeSingleton.new(...)
我是新來的軌(和紅寶石),我意識到一些事情。首先,設置這些「單例」不能是正確的方法,因爲這些類可以隨時在代碼中的任何其他地方實例化(現在假定不會發生)。其次,當我嘗試運行測試(rake spec)或構建WAR(使用warble)時,將這些「常量」放入此初始化器中似乎是錯誤的b/c我可以看到初始化器的內容正在運行,所以我正在創建與mongo的連接,開始我的「some_other_singleton」等。
這種東西應該去哪裏?
預先感謝與我noobness :)
感謝您的想法。但是另一個在「初始化器」中設置/啓動的問題呢?要運行一個簡單的RSpec控制器測試,需要將近50秒,因爲它首先執行那些使我的應用程序創建到數據庫連接的初始化程序,加載一些數據和其他東西。 – codecraig 2011-03-10 12:34:52
那麼你可以讓實例類方法懶洋洋地創建任何昂貴的資源。這樣,如果您的測試實際需要調用實例方法,那麼您只會受到打擊。 – Alternegro 2011-03-10 16:48:23