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

有什么区别:

- content_for :header do %h1 Title 

 = content_for :header do %h1 Title 

什么是正确的方法?

这取决于你想做什么。

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

 = content_for :header do %h1 Title 

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

 - content_for :header do %h1 Title 

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

 = content_for :header 

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

= yield:header虽然没有被弃用,但却被用尽了。 虽然Rails 3.2支持这一点,但问题出现在辅助模块中。 另一方面,content_for确实运行良好,是一种更常用的命令。