1

我在 gem 中定义了一个类,我通过改进向其中添加了一些方法(在 Ruby 2.3.0 中)。这个类出现在一些 Sinatra 视图 (haml) 中。

当我在帮助程序中引用这些额外的方法时,没有问题。但在视图中,我得到一个未定义的方法错误。

我错过了一个技巧,还是using ...声明需要去某个我无法到达的地方?

(解决方法:我可以定义帮助方法来返回对象上的方法。但如果我想这样做,那么我就不会使用改进......)

4

1 回答 1

0

细化的范围由词法确定。除非您在 haml 中重写调用该方法的方法,使其在using命令范围内,否则您不能使用细化。但我猜 haml 在内部使用eval或类似的东西来评估您在 haml 文件中编写的代码。在那种情况下,这是不可能的。

于 2016-03-04T12:16:29.790 回答