Erik Escobedo
Erik Escobedo

Reputation: 2803

What's the right syntax to use Rails `content_for` helper in a HAML context

What are the differences in the use of - and = in the following:

- content_for :header do
  %h1 Title

and

= content_for :header do
  %h1 Title

What is the right way?

Upvotes: 9

Views: 9747

Answers (2)

Ritumoni Sharma
Ritumoni Sharma

Reputation: 71

= yield :header, although not deprecated, has been put to less use. Although Rails 3.2 supports this, the problem occurs in helper modules.

content_for, on the other hand does work well and is a more often used command.

Upvotes: 0

gylaz
gylaz

Reputation: 13581

That depends on what you want to do.

To render the header right away, do:

= content_for :header do
  %h1 Title

To store the content and use it later, do:

- content_for :header do
  %h1 Title

And to use it somewhere in your view(s):

= content_for :header

In Rails < 3.2 you needed to use = yield :header. That is still supported in Rails 3.2 but it doesn't work in helper modules while content_for does (thanks @drewish).

Upvotes: 20

Related Questions