ruby on rails - link_to - ¿Cuál es la mejor forma de devolver varias etiquetas desde un Rails Helper?
rails 5 link_to class (3)
Quiero crear un campo oculto y crear un enlace en un helper y luego generar ambos en mi erb.
<%= my_cool_helper "something", form %>
Debería poner 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 lo que link_to y form.hidden_field realmente no importan. Lo que importa es cómo devolver la salida de dos llamadas diferentes.
Hasta ahora, lo mejor que he encontrado es:
def my_cool_helper(name, form)
out = capture { link_to name, a_path }
out << capture { form.hidden_field name.tableize, value => ''something'' }
end
¿Hay una mejor manera?
Hay varias formas de hacer esto.
Recuerda que los helipuertos existentes como link_to
, etc, solo link_to
salida a cadenas. Puede concatenar las cadenas y devolverlas (que es lo que hago la mayoría de las veces, 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ás haciendo cosas que son más complicadas, puedes simplemente poner ese código de forma parcial, y hacer que tu ayuda invoque render :partial
.
Si estás haciendo cosas más complicadas incluso que eso, entonces es posible que quieras mirar el block_to_partial helper de errtheblog , que es bastante genial
Si desea almacenar en búfer otra salida que además de la cadena, puede usar concat
lugar de +
. ver esto - http://thepugautomatic.com/2013/06/helpers/