Rails content_tag为<ul>元素</ul>

时间:2013-12-04 21:26:22

标签: html ruby-on-rails content-tag

如何使用content_tag帮助程序获取以下html输出?

  <ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
  </ul>

这就是我目前的

  content_tag(:ul) do
    a=*(1..5)
    a.each do |step_number|
      content_tag(:li, class: "step") do
        puts step_number
      end
    end
  end

更新 - 回答

感谢下面的Peter的Loop & output content_tags within content_tag in helper链接,我在concat项目上遗漏了li

  content_tag :ul do
    items.collect do |step_number|
      concat(content_tag(:li, step_number, class: "step"))
    end
  end

2 个答案:

答案 0 :(得分:1)

我想你需要解决的是

content_tag(:ul) do
  (1..5).to_a.map do
    content_tag(:li, step_number, class: "step)
  end.reduce(&:+)
end

那应该做的工作!

答案 1 :(得分:0)

对我有用。

content_tag(:ul, :class => 'a class') do
  (1..5).each do |item|
    concat content_tag(:li, item)
  end
end

<ul class="a class">
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
  <li>5</li>
</ul>