For some reason I can not render a partial inside a content_for
block.
Here's the code:
/ => 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"
For some reason the following does not include my partial once fully rendered:
/ # => _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
I do not see a reason why this would not work. Any help is appreciated.
When rendering the partial directly inside my headinclude
-partial, it's working all fine.
The problem here was with the order.
I had to define the content_for
-block prior to calling render "layouts/headinclude"
.
Note that this concept would've worked if the "answering" content_for
-block (the one containing the render "layouts/hotjar"
-part) was inside a template (Like show
or index
or in whatever template you currently are). Reason for that is the order the content gets resolved by Rails.
A template seems to get resolved before the layout, so in this case the "asking" content_for
-block would've had actual data to display.
Here's (one possible) an answer:
/ => 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
I hope this helps somebody.