我在访问由Proc
创建的块中遇到参数时遇到麻烦,请参见:
#<NoMethodError: undefined method `read_transform' for #<API::Portal:0x0000556037915cc0>>
["api.rb:23:in `block (2 levels) in access'", ...]
module API
def self.access(s, delete: false, read_transform: proc(&:itself))
proc {
path = "/#{s}"
define_method(s) {
read_transform(query(:GET, path).body) # this is line 23
}
define_method("#{s}=") { |v|
query(API::_method(v, delete), path).body
}
}
end
end
该块用于扩展这样的类:class_eval &API::access(:name)
触发异常的呼叫是api.name
。
s
似乎可以在块内构建path
。为什么read_transform
在内部块中不可访问?我的示波器做错了吗?
我犯的错误是“无法正确解释错误”:undefined method `read_transform'