Я пытаюсь использовать вспомогательный метод, который будет выводить список элементов, который будет вызываться следующим образом:
foo_list( ['item_one', link_to( 'item_two', '#' ) ... ] )
Я написал вспомогательный метод, прочитав Использование помощников в рельсах 3для вывода html :
def foo_list items
content_tag :ul do
items.collect {|item| content_tag(:li, item)}
end
end
Однако я получаю пустой UL в этом случае, если я делаю это в качестве теста:
def foo_list items
content_tag :ul do
content_tag(:li, 'foo')
end
end
Я получаю UL & LIкак и ожидалось.
Я попытался немного поменять его местами, выполнив:
def foo_list items
contents = items.map {|item| content_tag(:li, item)}
content_tag( :ul, contents )
end
В этом случае я получаю весь список, но теги LI экранируются html (даже если строкиHTML безопасно).Выполнение content_tag(:ul, contents.join("\n").html_safe )
работает, но мне кажется, что это неправильно, и я чувствую, что content_tag
должен как-то работать в режиме блокировки с коллекцией.