ruby - content_for的li>ul>li类型的嵌套

浏览:35日期:2022-10-14

问题描述

在Rails的helper中,我建立这样一个方法:

def ul_li_ul_nest fruit = %w(apple watermelon orange pear pineapple) info = %w(price place weight) content_tag(:ul) do fruit.collect do |i| content_tag(:li) doi content_tag :ul do info.collect do |ii| content_tag :li do ii end end.join(’’).html_safeend end end.join(’’).html_safe endend

它输出的结果是:

<ul> <li> <ul> <li>price</li> <li>place</li> <li>weight</li> </ul> </li> <li> <ul> <li>price</li> <li>place</li> <li>weight</li> </ul> </li> <li> <ul> <li>price</li> <li>place</li> <li>weight</li> </ul> </li> <li> <ul> <li>price</li> <li>place</li> <li>weight</li> </ul> </li> <li> <ul> <li>price</li> <li>place</li> <li>weight</li> </ul> </li></ul>

而我期望的输出结果是:

<ul> <li> apple <ul> <li>price</li> <li>place</li> <li>weight</li> </ul> </li> <li> watermelon <ul> <li>price</li> <li>place</li> <li>weight</li> </ul> </li> <li> orange <ul> <li>price</li> <li>place</li> <li>weight</li> </ul> </li> <li> pear <ul> <li>price</li> <li>place</li> <li>weight</li> </ul> </li> <li> pineapple <ul> <li>price</li> <li>place</li> <li>weight</li> </ul> </li></ul>

如何修改才能达到这种结果?

问题解答

回答1:

def ul_li_ul_nest fruit = %w(apple watermelon orange pear pineapple) info = %w(price place weight) content_tag(:ul) do fruit.collect do |i| content_tag(:li) doi.html_safe + content_tag(:ul) do info.collect do |ii| content_tag :li do ii end end.join(’’).html_safeend end end.join(’’).html_safe endend

相关文章: