我已将Rails 3.2应用程序从Ruby 1.9.3-p448升级到2.0.0-p451。
所有自动化测试都通过,第一个,错误:
NameError: undefined local variable or method 'subject_path' for #...'<Administration::EntityAssociationsController::EntityAssociationsResponder:0x007fe007338d78>
这里的代码有点涉及,但实际上提供了subject_path
方法,因为EntityAssociationsResponder
继承自SimpleDelegator
,并使用当前的Rails控制器进行初始化,该控制器实现{{1作为受保护的方法。
该方法受到保护,因此Rails不会将其作为控制器操作。
这曾经很好用。 Ruby 2.0是否改变了这种行为,因此只委托了公共方法?我在文档中找不到任何对此类更改的引用。
更新
要解决此错误,我已将subject_path
子类化为:
SimpleDelegator