首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >content_tags在content_tag中

content_tags在content_tag中
EN

Stack Overflow用户
提问于 2015-02-24 15:55:15
回答 1查看 2.1K关注 0票数 2

当我在一个content_tag中嵌套多个其他content_tag时,只有最近嵌套的标记才会包含在content_tag输出中。

我正在创建一个创建引导导航条的助手函数:

代码语言:javascript
复制
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

这将导致一个仅包含“服务器”列表项的导航栏:

代码语言:javascript
复制
<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>

为了生成预期的引导菜单,我需要对代码进行哪些更改?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-24 16:26:03

你看起来真的很亲密。需要记住的是,content_tag返回一个HTML。当有几个被直接嵌套时,它就算得很好了。但是,当在同一个嵌套级别上有两个或多个content_tag表达式时,只有最后一个表达式返回到周围的块;早期的表达式不会存储在任何地方,也不是块的结果。

我只看到两个地方在同一嵌套级别上有两个content_tag块。解决这个问题的最简单的方法可能是做如下的事情:

代码语言:javascript
复制
tag1 = content_tag( ... )
tag2 = content_tag( ... )
(tag1 + tag2).html_safe

可能需要html_safe,也可以不需要;您可以尝试使用这两种方法来查看。如果是这样的话,那只是因为字符串连接。除此之外,你所拥有的一切看起来都很好。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28700358

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档