小编JAl*_*rto的帖子

将ruby哈希变成html列表

我正在尝试解析这样的yaml文件:

a:
 a1:
 a2:
b:
 b1:
  b11:
 b2:
Run Code Online (Sandbox Code Playgroud)

我得到这样的哈希:

{"a"=>{"a1"=>nil, "a2"=>nil}, "b"=>{"b1"=>{"b11"=>nil}, "b2"=>nil}}
Run Code Online (Sandbox Code Playgroud)

我想把它变成一个列表:

%ul
 %li a
  %ul 
   %li a1
   %li a2
 %li b
  %ul
   %li b1
    %ul
     %li b11
   %li b2
Run Code Online (Sandbox Code Playgroud)

我试图以最有效的方式搜索并不重要哈希有多深

最后我这样做了:

KeyWords = %w(url)

# Convert a multilevel hash into haml multilevel tree
# Special KeyWords
# url : item url
def hash_to_haml(hash, url = nil)
  haml_tag(:ul) do
    hash.each do |key, value|

      unless KeyWords.include?(key)
        url = get_url(key, value)

        haml_tag(:li) do
          haml_tag(:a, :href => url ) do
            haml_concat(key) …
Run Code Online (Sandbox Code Playgroud)

ruby hash ruby-on-rails

7
推荐指数
1
解决办法
5496
查看次数

标签 统计

hash ×1

ruby ×1

ruby-on-rails ×1