Rails content_for不呈现部分

时间:2017-01-17 14:27:17

标签: ruby-on-rails rendering partial content-for

出于某种原因,我无法在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 - 部分内部直接渲染部分时,它的工作正常。

1 个答案:

答案 0 :(得分:5)

这里的问题在于订单。 我必须在调用content_for之前定义render "layouts/headinclude" - 块。

请注意,如果“回答”content_for - 块(包含render "layouts/hotjar" - 部分的那个)位于模板内(如show或{{ 1}}或在你目前的任何模板中)。原因是Rails解析内容的顺序。

模板似乎在布局之前得到解决,因此在这种情况下,“询问”index - 块将显示实际数据。

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

content_for

我希望这有助于某人。