Ruby accediendo a variables externas en función anidada

Estoy seguro de que hay una respuesta simple para esto; Simplemente no puedo encontrarlo. Hice una función anidada en Ruby, y tenía problemas para acceder a las variables desde la función externa dentro de la función interna:

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

foo(5)
</code>

Yo obtengo:NameError: undefined local variable or methodx 'para main: Object`

El código análogo de Python funciona:

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

foo(5)
</code>

Entonces, ¿cómo hago lo mismo en Ruby?

Respuestas a la pregunta(1)

Su respuesta a la pregunta