Bucle y salida content_tags dentro de content_tag en helper
Estoy probando un método auxiliar que generará una lista de elementos, que se llamará así:
foo_list( ['item_one', link_to( 'item_two', '#' ) ... ] )
He escrito el ayudante así después de leerUso de ayudantes en rails 3 para generar html:
def foo_list items
content_tag :ul do
items.collect {|item| content_tag(:li, item)}
end
end
Sin embargo, solo obtengo un UL vacío en ese caso, si hago esto como prueba:
def foo_list items
content_tag :ul do
content_tag(:li, 'foo')
end
end
Recibo el UL y LI como se esperaba.
He intentado intercambiarlo un poco haciendo:
def foo_list items
contents = items.map {|item| content_tag(:li, item)}
content_tag( :ul, contents )
end
En ese caso, obtengo la lista completa, pero las etiquetas LI se escapan en html (aunque las cadenas son seguras para HTML). Haciendocontent_tag(:ul, contents.join("\n").html_safe )
funciona pero me parece mal y sientocontent_tag
debería funcionar en modo bloque con una colección de alguna manera.