Rails content_for 未渲染部分

Rails content_for not rendering partial

出于某种原因,我无法在 content_for 块内渲染部分内容。

代码如下:

/ => index.html.slim
doctype html
html lang="de"
  = render "layouts/headinclude"
  body
    = yield
    - if Rails.env.production?
      - content_for :additional_headincludes do
        = render "layouts/hotjar"

出于某种原因,以下内容在完全呈现后不包括我的部分内容:

  / # => _headinclude.html.slim
  head
    title= @title || "My Title"
    link href='//fonts.googleapis.com/css?family=Droid+Sans:400,700' rel='stylesheet' type='text/css'
    - if content_for?(:additional_headincludes)
      = yield :additional_headincludes

我看不出这是行不通的原因。任何帮助表示赞赏。 当直接在我的 headinclude-partial 中渲染部分时,它工作正常。

问题出在订单上。 在调用 render "layouts/headinclude".

之前,我必须定义 content_for-block

请注意,如果 "answering" content_for 块(包含 render "layouts/hotjar" 部分的块)位于模板内(如 showindex 或您当前使用的任何模板)。原因是 Rails.

解析内容的顺序

模板似乎在布局之前得到解析,因此在这种情况下,"asking" content_for 块将显示实际数据。

这是(一种可能的)答案:

/ => index.html.slim
- if Rails.env.production?
  - content_for :additional_headincludes do
    = render "layouts/hotjar"
doctype html
html lang="de"
  = render "layouts/headinclude"
  body
    = yield

我希望这对某人有所帮助。