2015-11-23 45 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

親切的先生,非常感謝,有價值的見解 –