代码之家  ›  专栏  ›  技术社区  ›  thenoseman

Rails:在相应的“屈服”内部布局之后使用“content_for”

  •  11
  • thenoseman  · 技术社区  · 16 年前

    我想以前有人问过这个问题,但即使我搜索了谷歌,我也没有找到解决办法。

    layouts/application.html.erb:
    <html>
      <head>
        ... some other stuff
        <%= yield :head %>
      </head>
      <body>
        <% content_for :head, "something that belongs in the head" %>
      </body>
    </html>
    

    注意收益率 之前

    我知道Rails默认不允许定义:head的内容 之后 收益率已被使用-有意义。

    我甚至试着连接到模板渲染过程中,但到目前为止没有成功。

    因此,我的目标是能够为内部部分/模板定义内容,并在响应发送到浏览器之前以某种方式延迟和执行“屈服”。

    有人想出解决办法了吗?

    问候和感谢, 直率的

    我会同意weppos的想法,在机架中间件上尝试一下。谢谢

    2 回复  |  直到 16 年前
        1
  •  13
  •   Simone Carletti    16 年前

    渲染过程首先加载并执行动作模板,然后使用选定的布局装饰模板。 :head :头

    你需要改变你的策略。将片段放在分部中并将其附加到动作视图中,或者使用后处理策略(如机架模块/after_过滤器)直接更改html代码。

    我可能会根据我的实际需要,尝试找到更好的解决方案。如果您遇到这个问题,那么错误可能在其他地方,可能在应用程序架构中。

        2
  •  7
  •   John Topley    16 年前

    你的表中不应该有等号 content_for 陈述应该是:

    <% content_for :head, "Something that belongs in the head" %>
    

    如果您在模板和部分中定义了内容,那么它应该可以工作。这项技术在本文中有所介绍 Railscast episode 8 .

    推荐文章