在HAML上下文中使用Rails`content_for` helper的正确语法是什么

Eri*_*edo 9 haml ruby-on-rails

有什么区别:

- content_for :header do
  %h1 Title
Run Code Online (Sandbox Code Playgroud)

= content_for :header do
  %h1 Title
Run Code Online (Sandbox Code Playgroud)

什么是正确的方法?

gyl*_*laz 19

这取决于你想做什么.

要立即渲染标题,请执行以下操作:

= content_for :header do
  %h1 Title
Run Code Online (Sandbox Code Playgroud)

要存储内容并在以后使用,请执行以下操作:

- content_for :header do
  %h1 Title
Run Code Online (Sandbox Code Playgroud)

并在你的视图中的某个地方使用它:

= content_for :header
Run Code Online (Sandbox Code Playgroud)

在Rails <3.2中你需要使用= yield :header.在Rails 3.2中仍然支持这一点,但它在辅助模块中content_for不起作用(感谢@drewish).