當我在content_tag中嵌套多個其他content_tag時,HTML輸出中只包含最近嵌套的標記。content_tag內容content_tag
我創建創建一個引導導航欄的輔助功能:
def navigation_menu
content_tag(:nav, class: "navbar navbar-default") do
content_tag(:div, class: "container") do
content_tag(:div, class: "navbar-header") do
button_tag(type: "button", class: "navbar-toggle collapsed") do
content_tag(:span, "Toggle navigation", class: "sr-only")
content_tag(:span, class: "icon-bar")
content_tag(:span, class: "icon-bar")
content_tag(:span, class: "icon-bar")
end
content_tag(:a, "Brand", {class: "navbar-brand", href: "#"})
end
content_tag(:div, class: "collapse navbar-collapse") do
content_tag(:ul, class: "nav navbar-nav") do
content_tag(:li) do
link_to "Companies", companies_path
end
content_tag(:li) do
link_to "Servers", servers_path
end
end
end
end
end
end
這導致導航欄只有在「服務器」列表項包括:
<nav class="navbar navbar-default">
<div class="container">
<div class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li><a href="/servers">Servers</a></li>
</ul>
</div>
</div>
</nav>
什麼變化,我需要使我的代碼,以產生預期的助推器菜單?
您必須將所有content_tags連接到一個字符串。而不是讓它html_safe。一團糟。你應該考慮渲染一個部分。 – 2015-02-24 16:01:42