Ruby on rails 3 将嵌套消息帮助器从div更改为无序列表
我正在使用ryan bates railscasts上的一个助手方法来显示嵌套消息(下面的代码非常有效) 上面的代码位将各个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> <
我想将其编入无序列表,因此我所做的是: 生成的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