Przechodzenie bloku do metody - Ruby [duplikat]

To pytanie ma już odpowiedź tutaj:

lok @Code przekazany do każdego działa w nawiasach, ale nie z „do” - „end” (ruby) 3 odpowiedzi

Mam małe pytanie na temat przejścia bloku.

def a_method(a, b)
  a + yield(a, b)
end

To działa dobrze.

k = a_method(1, 2) do |x, y| 
  (x + y) * 3 
end
puts k

Ale to nie zadziała.

puts a_method(1, 2) do |x, y| 
  (x + y) * 3 
end
# LocalJumpError: no block given (yield)

Czy ktoś może mi to wyjaśnić?

Dzięki. Przykład zaczerpnięty z Metaprogramming Ruby autorstwa Paolo Perrotty. Świetna książka

questionAnswers(2)

yourAnswerToTheQuestion