Ruby on rails 3 将嵌套消息帮助器从div更改为无序列表

Ruby on rails 3 将嵌套消息帮助器从div更改为无序列表,ruby-on-rails-3,helper,nested,Ruby On Rails 3,Helper,Nested,我正在使用ryan bates railscasts上的一个助手方法来显示嵌套消息(下面的代码非常有效) 上面的代码位将各个div嵌套在树状结构中我想将其编入无序列表,因此我所做的是: 生成的html看起来不错,但是列表项不包含任何值。我做错什么了吗 更新 我希望生成的html如下所示: <ul> <li>Main Message</li> <!-- first message --> <li> <

我正在使用ryan bates railscasts上的一个助手方法来显示嵌套消息(下面的代码非常有效)

上面的代码位将各个div嵌套在树状结构中
我想将其编入无序列表,因此我所做的是:

生成的html看起来不错,但是列表项不包含任何值。我做错什么了吗

更新

我希望生成的html如下所示:

<ul>
    <li>Main Message</li>  <!-- first message -->
    <li>
        <b>Message 1</b>
        <ul>
            <li>Message 1 subchild 1</li>
            <li>Message 1 subchild 2</li>
        </ul>
    </li>
</ul>

创建
ul
标记,然后呈现消息。如果这样做,您的HTML将是什么样子

ul
中的内容应该嵌套在
li
中:您只需呈现消息

您需要将其放入
li
标记中,以便无序列表具有有效内容

def nested_messages(messages)
    messages.map do |message, sub_messages|
        content_tag(:ul, :class => "") do
            render(message)
            content_tag(:li, :class => "nested_messages") do
                nested_messages(sub_messages)
            end
        end
    end.join.html_safe
end
<ul>
    <li>Main Message</li>  <!-- first message -->
    <li>
        <b>Message 1</b>
        <ul>
            <li>Message 1 subchild 1</li>
            <li>Message 1 subchild 2</li>
        </ul>
    </li>
</ul>
def nested_messages(messages)
    messages.map do |message, sub_messages|
        #render(message) + content_tag(:div, sub_messages, :class => "nested_messages")
        content_tag(:ul, :class => "") do
            content_tag(:li, :class => "nested_messages") do
                render(message) + nested_messages(sub_messages)
            end
        end
    end.join.html_safe
end