どちらもブロックを除く 2 つのメソッドがありますが、メソッドの 1 つはそのブロックを別のメソッドに渡す必要があります。
def one(&block)
two(block)
end
def two(&block)
block.call
end
実際のコードでは、他のパラメーターが渡され、one構文糖衣twoです。
ブロックで と の両方oneを呼び出せるようにしたい。two
one { } # => okay
two { } # => ArgumentError: wrong number of arguments (1 for 0)
を取得する理由がわかり、ArgumentError引数two自体がありません。これをどのように表現するかはよくわかりませんが&block、渡された引数の後にブロックが表示されることを示しているため、エラーが発生します。
ルビー1.9