我为每个HTML元素使用data-tip
来显示工具提示是否具有此属性。
由于
data_tip: "a message for you"
看起来比
好多了:"data-tip" => "an other message for rudi"
无论我对此负责,我都会将'_'转换为' - '。
对于我的simple navigation gem
菜单,我找到了一个很好的递归解决方案:
cleanup=Proc.new do |item|
cleanup_hash item.html_options #<- this does the '_' -> '-'
item.sub_navigation.items.each(&cleanup) if item.sub_navigation
end
navigation.primary_navigation.items.each(&cleanup)
这很好用,但是,如果我想打印出嵌套级别怎么办?我从哪里开始'0'?
答案 0 :(得分:4)
您可以使用curry
cleanup=Proc.new do |depth=0, item|
cleanup_hash item.html_options #<- this does the '_' -> '-'
item.sub_navigation.items.each(&cleanup.curry[depth + 1]) if item.sub_navigation
end
navigation.primary_navigation.items.each(&cleanup)
咖喱做什么:
一个咖喱过程得到一些论点。如果数量足够的话 提供了参数,它将提供的参数传递给 原始proc并返回结果。否则,返回另一个 采取其余论点的咖喱过程。