Loop e saída content_tags dentro de content_tag no helper
Estou tentando um método auxiliar que produzirá uma lista de itens, a ser chamado assim:
foo_list( ['item_one', link_to( 'item_two', '#' ) ... ] )
Eu escrevi o ajudante assim depois de lerUsando auxiliares nos trilhos 3 para gerar html:
def foo_list items
content_tag :ul do
items.collect {|item| content_tag(:li, item)}
end
end
No entanto, apenas recebo um UL vazio nesse caso, se fizer isso como um teste:
def foo_list items
content_tag :ul do
content_tag(:li, 'foo')
end
end
Recebo o UL & LI como esperado.
Eu tentei trocá-lo um pouco fazendo:
def foo_list items
contents = items.map {|item| content_tag(:li, item)}
content_tag( :ul, contents )
end
Nesse caso, recebo a lista inteira, mas as tags LI são html escapadas (mesmo que as strings sejam seguras em HTML). Fazendocontent_tag(:ul, contents.join("\n").html_safe )
funciona, mas parece errado para mim e eu sintocontent_tag
deve funcionar no modo de bloco com uma coleção de alguma forma.