Ruby acessando variáveis ​​externas em função aninhada

Tenho certeza que há uma resposta simples para isso; Eu simplesmente não consigo encontrar. Fiz uma função aninhada em Ruby e estava tendo problemas para acessar variáveis ​​da função externa dentro da função interna:

<code>def foo(x)
  def bar
    puts x
  end
  bar
  42
end

foo(5)
</code>

Eu recebo:NameError: undefined local variable or methodx 'para main: Object

O código analógico do Python funciona:

<code>def foo(x):
  def bar():
    print x
  bar()
  return 42

foo(5)
</code>

Então, como faço a mesma coisa em Ruby?

questionAnswers(1)

yourAnswerToTheQuestion