Pregunta

Quiero crear un campo oculto y crear un enlace en un asistente y luego enviar ambos a mi erb.

<%= my_cool_helper "something", form %>

Debería superar los resultados de

link_to "something", a_path
form.hidden_field "something".tableize, :value => "something"

¿Cómo sería la definición de ayudante?Los detalles de qué link_to y form.hidden_field realmente no importan.Lo que importa es cómo devuelvo el resultado de dos llamadas diferentes.

¿Fue útil?

Solución

Hay varias formas de hacer esto.

Recuerde que a los ayudantes de rieles existentes les gusta link_to, etc, solo genera cadenas.Puedes concatenar las cadenas y devolverlas (que es lo que hago la mayor parte del tiempo, si las cosas son simples).

P.EJ:

link_to( "something", something_path ) +  #NOTE THE PLUS FOR STRING CONCAT
form.hidden_field('something'.tableize, :value=>'something')

Si está haciendo cosas que son más complicadas, puede simplemente poner ese código en una parte y pedirle a su ayudante que llame render :partial.

Si estás haciendo cosas más complicadas que eso, entonces quizás quieras mirar el blog de errtheblog. bloque_a_partial ayudante, lo cual es genial

Otros consejos

Hasta ahora lo mejor que se me ha ocurrido es:

def my_cool_helper(name, form)
  out = capture { link_to name, a_path }
  out << capture { form.hidden_field name.tableize, value => 'something' }
end

¿Existe una mejor manera?

Si desea almacenar en búfer otra salida aparte de la cadena, puede usar concat en lugar de +.mira esto - http://thepugautomatic.com/2013/06/helpers/

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top