2015-11-23 44 views
0

我一直在用头盔,拼接,安全缓冲等方式将我的头撞在墙上,这些东西通常会让我困惑不解,但这次我很难过。Rails 4深度嵌套的内容标签和字符串

以下内容取自我的测试结果,应该给你一个清晰的例子,说明我正在尝试输出的内容。

实际

<ul><li class="bold-weight up-c disabled-toilet"><div class="center"><span class="icon"></span></div></li></ul> 

预期

<ul><li class="bold-weight up-c disabled-toilet"><div class="center"><span class="icon"></span></div>Disabled toilet 

所以我唯一不能输出是L1标签内,但收盘后“残疾人厕所”(这进来动态任何方式)内部div标签。

您可以从方法'accessability_sub_level'中看到我尝试实现的目标。

def venue_accessability(venue) 
    return unless venue.get_accessability.any? 
    content_tag(:ul, nil) do 
     venue.get_accessability.map do |va| 
     accessability_sub_level(va) 
     end.join().html_safe 
    end 
    end 

    private 

    def accessability_sub_level(va) 
    content_tag(:li, nil, class: "bold-weight up-C#{va[:icon]}") do 
     content_tag(:div, nil, class: 'center') do 
     concat content_tag(:span, nil, class: 'icon') 
     end 
     va[:title] 
    end 
    end 

帮助最受赞赏。

感谢

回答

2

accessability_sub_level的问题是,你只能从第一content_tag块返回va[:title]。您有嵌套content_tag块来连接它:

def accessability_sub_level(va) 
    content_tag(:li, nil, class: "bold-weight up-C#{va[:icon]}") do 
    content_tag(:div, nil, class: 'center') do 
     content_tag(:span, nil, class: 'icon') 
    end.concat(va[:title]) 
    end 
end 

(这是很难测试/重放对我来说,这可能不是一个完整的解决方案,它甚至可能不会在所有的工作...)

+0

亲切的先生,非常感谢,有价值的见解 –