我有一個應用程序已經有一段時間,我正在遷移爲 Rails 2.3.8。有很多有趣的問題,但我在 主場,但現在遇到了一些非常奇怪的錯誤。Rails從2.2.2移動到2.3.8 - 耙不加載環境相同的控制檯或我的應用程序
這個要點是當我用rake運行任務失敗時,但是當我運行 相同的代碼形式的控制檯它工作正常。我設計的'修復'是 移動我的包含ModuleNameA,包括ModuleNameB等到 AR文件的底部。
我不喜歡這個'修復',因爲我不明白它。在我將它們移動到 之前,AR對象(我們稱之爲Bob)在通過rake調用調用時會拋出未定義的方法 錯誤。它在rake任務中被調用 ,但在另一個AR對象中。
所以耙子任務運行着像Worker.work這樣的東西,而且 會失敗,如上所述。當我從控制檯運行Worker.work時,它會通過 。一旦我將包含文件移動到文件底部, 都可以使用。
任何人都見過類似的東西嗎?我覺得 根本是不正確的。就像我已經打破了基本功能 功能,我的'修復'是一種奇怪的補丁。
謝謝。 埃裏克
PS:
還有就是我,包括我的AR對象的模塊。它這樣做增加了類和實例方法:
def self.included(base)
base.extend(ClassMethods)
end
所有這些模塊中的方法可在控制檯上,而不是通過耙任務。
更新: 我注意到,如果我參加了:工作=>:環境的一部分出 耙任務,而是在做任務塊需要用手環境 文件(例如,需要(File.join(RAILS_ROOT ,'config', 'environment')))它工作正常。突然間,我所有的課程 方法都可用。這非常令人不安。
也許你或其他人已經覆蓋了'環境'任務? – 2011-03-01 02:52:23
不,我找到了它,並把它放入它,它叫railties。我用misc寫了一個puts語句。耙子,它在那裏叫它。 – 2011-03-01 03:38:40