Escribo un ayudante que agrega un atributo HTML a una etiqueta link_to 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.Ruby: ¿Cómo paso todos los parámetros y bloques recibidos por un método a otro?
De esta manera:
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.
Por lo tanto, como se puede ver, no parece haber ninguna manera (que no implica un montón de código y la bifurcación condicional) para pasar lo myhelper ha recibido a link_to sin girar todos los parámetros volvieron a su aspecto original antes de que llegaran a mi método.
¿Hay una solución más 'Ruby-like' a este problema?
Tenga en cuenta que en Ruby 2.0, argumentos con nombre también pueden tener que ser reenviado ... – Ajedi32