2012-05-03 49 views
2
undefined method `parent_table_name' for class `ActiveRecord::Associations::JoinDependency::JoinAssociation' 

我最近升級了我們的應用程序從Rails 2.3.12到Rails 3.0.12。我清除了所有的棄用警告,然後繼續升級到Rails 3.1.4。升級到Rails 3.1.4之後,每當應用程序加載並在瀏覽器中訪問時,我都會收到此錯誤。運行測試時也會引發這種情況。真奇怪的部分是,簡單的刷新會導致應用程序繼續前進而不會出現其他錯誤。但是,停止服務器並重新啓動它會導致它在下次訪問期間再次觸發。它似乎也不在一個地方發生。發生此錯誤時,可以在回溯中看到不同模型或控制器上的不同方法。升級後奇怪的Rails 3.1+錯誤:未定義的方法'parent_table_name'

我已經嘗試使用調試器逐步執行代碼,但它不會觸發。我試圖用Google搜索這個錯誤,但什麼都沒發現。我嘗試通過回溯尋找任何不尋常的東西,並嘗試更新一些舊的舊代碼,看看是否有幫助。

看起來它與我的關聯有關,所以我尋找了任何非基本的重構關聯,以使它們成爲標準的基本關聯。我有幾個其他Rails 3.1和3.2應用程序,並沒有看到使用我使用的任何常用關聯的這個錯誤。我有一些與額外列的habtm關聯,所以我將它們轉換爲has_many:通過創建一個連接模型。我有一些關聯:條件和:包括他們。這通常不是我通常做的,但是我從以前的開發人員那裏繼承了這個應用程序。

這個錯誤是否與任何人打鈴?任何可以幫助我追蹤的技巧或指針都會很棒。

回答

1

好吧,我明白了這一點。它與Rails中的任何奇怪無關。以前的應用程序開發人員之一編寫了覆蓋Module#delegate的自定義委託方法。一旦我刪除了該代碼,一切正常。

+0

你可以(也應該)只是發佈你的答案作爲答案。 :)我這次代表您已經將您的評論編輯到了這篇文章中。 –

相關問題