是否可以使用Sinatra视图中的优化中定义的方法?

时间:2016-03-04 12:12:30

标签: ruby sinatra refinements

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

当我在帮助器中引用这些额外的方法时,没有问题。但在视图中,我得到一个Undefined Method错误。

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

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

1 个答案:

答案 0 :(得分:0)

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