【发布时间】:2013-03-07 04:45:36
【问题描述】:
为什么这不起作用?
module StringRefinement
refine String do
def bar
length
end
end
end
using StringRefinement
"abcdefghijklmnopqrstuvwxyz".send(:bar)
#NoMethodError: undefined method 'bar' for "abcdefghijklmnopqrstuvwxyz":String
有人可以解释为什么send 在这里不起作用吗?有没有办法动态调用细化中定义的方法?我似乎找不到关于 Ruby 2.0 中的改进如何工作的完整解释。
【问题讨论】:
-
因为它是实验性的?
-
@oldergod 真的吗?我只是通过将上面的代码直接复制并粘贴到 pry 中再次尝试并收到完全相同的错误。我也在使用 2.0.0-p0。你确定你做的和我发布的完全一样吗?
-
@SeanMackesey 你是对的,我的错。