rails objetos metodos manejo lista importar for clases bucle ruby-on-rails ruby

ruby-on-rails - objetos - ruby for bucle



Ruby: ¿Cómo paso todos los parámetros y bloques recibidos por un método a otro? (1)

Estoy escribiendo un helper que agrega un atributo HTML a un link_to tag en rieles. Entonces, mi pensamiento es que mi método de ayuda debe aceptar cualquier parámetro o bloque que se le pase, llame a link_to con esos mismos parámetros, agregue su atributo a lo que se devuelve y devuelva el resultado a la persona que llama.

Me gusta esto:

def link_to(*args, &block) ... rails code in link_to ... end def myhelper(*args, &block) # Notice that at this point, ''args'' has already link_to() # become an array of arguments and ''block'' has ... my code ... # already been turned into a Proc. end myhelper() # Any arguments or blocks I pass with this call should make # it all the way through to link_to.

Entonces, como puede ver, parece que no hay manera (que no involucre un montón de código y bifurcación condicional) de pasar lo que myhelper ha recibido a link_to sin convertir todos los parámetros nuevamente en lo que parecían antes de llegar a mi método

¿Hay una solución más similar a Ruby para este problema?


Puede usar las llamadas al método * y & en para volver a convertir las matrices en listas de argumentos y procesos en bloques. Entonces puedes hacer esto:

def myhelper(*args, &block) link_to(*args, &block) # your code end