gjb*_*gjb 3 ruby ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2
我正在尝试编写一个Rails帮助器方法,将嵌套的哈希转换为嵌套的HTML列表.
例如:
{
:parent => "foo",
:children => [
{
:parent => "bar",
:children => [
{
:parent => "baz",
:children => []
}
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
应成为:
<ul>
<li>foo</li>
<ul>
<li>bar</li>
<ul>
<li>baz</li>
</ul>
</ul>
</ul>
Run Code Online (Sandbox Code Playgroud)
散列可以具有任意数量的级别,以及每个级别的任意数量的父级.
请问最好的方法是什么?
您可以使用递归方法渲染以散列到嵌套的列表集.将其放在您的相关帮助者中:
def hash_list_tag(hash)
html = content_tag(:ul) {
ul_contents = ""
ul_contents << content_tag(:li, hash[:parent])
hash[:children].each do |child|
ul_contents << hash_list_tag(child)
end
ul_contents.html_safe
}.html_safe
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2246 次 |
| 最近记录: |