Ruby 2.0是否改变了SimpleDelegator的行为?

时间:2014-03-13 17:03:40

标签: ruby-on-rails ruby ruby-on-rails-3 delegation ruby-2.0

我已将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

1 个答案:

答案 0 :(得分:3)

是的,有一个变化,目前有一个opened issue