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