我正在尝试检索几个实例方法的参数。惯用的 Ruby 方法是这样的:
class A
def test(id)
puts id
end
end
A.instance_method(:test).parameters
#=> [[:req, :id]]
这种方法大部分时间都有效,但是我用某些方法得到了一些奇怪的回报,我不知道为什么。
module Events
class Repository
def find(id)
#code
end
def delete(id)
#code
end
end
end
Events::Repository.instance_method(:find).parameters
#=> [[:req, :id]]
Events::Repository.instance_method(:delete).parameters
#=> [[:rest, :args], [:block, :block_for_method]]
这是一个 Ruby 错误吗?
注意:我在 Rails 控制台中输入以上内容。