diferença de sintaxe @block causa "LocalJumpError: nenhum bloco fornecido (rendimento)" [duplicado]

Esta pergunta já tem uma resposta aqui:

bloco @Code passado para cada um funciona com colchetes, mas não com 'do' - 'end' (ruby) 3 respostas

Saw um caso estranho, tentando descobrir o que está acontecendo aqui:

> def test
>   p yield
> end
=> nil
> test { 1 }
1
=> 1
> p test { 1 }
1
1
=> 1
> p test do
>   1
> end
LocalJumpError: no block given (yield)

questionAnswers(2)

yourAnswerToTheQuestion