升级后奇怪的Rails 3.1+错误:未定义的方法'parent_table_name'

问题描述:

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:通过创建一个连接模型。我有一些关联:条件和:包括他们。这通常不是我通常做的,但是我从以前的开发人员那里继承了这个应用程序。

这个错误是否与任何人打铃?任何可以帮助我追踪的技巧或指针都会很棒。

好吧,我明白了这一点。它与Rails中的任何奇怪无关。以前的应用程序开发人员之一编写了覆盖Module#delegate的自定义委托方法。一旦我删除了该代码,一切正常。

+0

你可以(也应该)只是发布你的答案作为答案。 :)我这次代表您已经将您的评论编辑到了这篇文章中。 –