2012-05-03 9 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にアップグレードした後、アプリケーションがロードされブラウザにアクセスするたびにこのエラーが表示されます。テストの実行時にも発生します。本当に奇妙な部分は、単純なリフレッシュによって、アプリが別のエラーなしで前進し続けるということです。ただし、サーバーを停止して再起動すると、次回のアクセス時に再起動されます。ある場所では起こっていないようです。このエラーが発生すると、バックトレースにさまざまなモデルやコントローラのさまざまなメソッドが表示されます。アップグレード後のStrange Rails 3.1+エラー:未定義のメソッド 'parent_table_name'

デバッガを使用してコードをステップ実行しようとしましたが、起動しません。私はこのエラーのためにグーグルを試みて、何も見つかりませんでした。私はbacktraceを通って普通のものを探して歩いてみましたし、古いレガシーコードを更新して助けてくれたかどうか試してみました。

私の団体と何か関係があるようですので、基本的ではなく、リファクタリングされた団体を探して、標準的な団体にしました。私はいくつかの他のRails 3.1と3.2のアプリケーションを持っていて、私が使用する通常の関連付けを使ってこのエラーを見ていません。私は余分な列を持ついくつかのhabtm関連を持っていましたので、それらをhas_manyに変換しました:結合モデルを作成します。私はいくつかの関連性を持っている:条件と:それらに含まれています。これは私が通常行うことではありませんが、私は以前の開発者からこのアプリを継承しました。

このエラーは誰とでも鳴っていますか?私がそれをトレースするのに役立つヒントやポインタは素晴らしいだろう。

答えて

1

私はこれを理解しました。それはRailsで奇妙なこととは何の関係もありませんでした。以前のアプリ開発者の一人が、カスタムデリゲートメソッドを作成して、Module#delegateをオーバーライドしていました。一度コードを削除すると、すべて正常に機能しました。

+0

回答は回答として投稿することができます。 :)私はこの時間あなたのためにこのポストにあなたのコメントを編集しました。 –