rails left joins inner includes ruby nested scope

ruby - left - rails where



Ruby accediendo a las variables externas en la funciĆ³n anidada (1)

Hasta donde yo sé, definir una función nombrada dentro de una función no le da acceso a ninguna variable local.

Lo que puede hacer en su lugar es usar un Proc:

def foo(x) bar = lambda do puts x end bar.call 42 end foo(5)

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

def foo(x) def bar puts x end bar 42 end foo(5)

Obtengo: NameError: undefined local variable or method x ''para main: Object`

El código análogo de Python funciona:

def foo(x): def bar(): print x bar() return 42 foo(5)

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