嵌套块中的访问键参数

问题描述 投票:1回答:1

我在访问由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在内部块中不可访问?我的示波器做错了吗?

ruby proc
1个回答
0
投票

我犯的错误是“无法正确解释错误”:undefined method `read_transform'

© www.soinside.com 2019 - 2024. All rights reserved.