我的我的/ lib文件夾中有一個類,我的delayed_job守護進程調用它來處理Foo類型的對象。如果我在worker類中沒有「require'foo'」,那麼它不知道如何處理從數據庫獲得的YAML,並且我得到「undefined method」錯誤。加入「require」foo'「顯然會解決這個問題,這是通常的解決方案。避免在/ lib文件夾的delayed_job類中使用'requires'
但是......問題是我在class Foo中有counter_cache => true。那麼會發生什麼情況是,當DJ守護進程加載Rails環境時,Foo會自動加載,併爲我的counter_cache添加回調。然後,delayed_job守護進程運行,執行「requires'foo'」,並且乖乖地重新加載Foo併爲counter_cache添加了另一個回調,這導致我的counter_cache爲添加或刪除的每一行更新兩次。
有沒有辦法包裝:counter_cache => true,所以它只運行一次?有沒有辦法讓我的DJ工人類使用'Foo'類型的對象而不必明確使用'require'? ?