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.