0

我想使用 content_tag 来呈现嵌套的 ul li 列表

<ul>   <li>
    <div>Message1</div>    </li>    <li>
     <div>Message 2</div>
    </li> </ul>

我有这样的辅助方法

def nested_messages(messages)
    messages.map do |message, sub_messages|
      content_tag :ul do
        content_tag :li do
          render(message) + nested_messages(sub_messages)
        end
      end 
    end.join.html_safe
end

我没有得到嵌套列表。我的输出看起来像这样

<ul>
  <li>
    <div>Message 1</div>
   </li>
</ul> 
<ul>
  <li>
    <div>Message 2</div>
  </li>
</ul>

我在哪里做错了?如何获得正确的嵌套列表?

4

1 回答 1

3

messages.map块嵌套在ul内容标记块内:

def nested_messages(messages)
  content_tag :ul do
    messages.map do |message, sub_messages|
      content_tag :li do
        render(message) + nested_messages(sub_messages)
      end
    end.join
  end.html_safe
end
于 2012-12-05T12:03:00.577 回答