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.

questionAnswers(5)

yourAnswerToTheQuestion