在HAML环境中使用Rails的`content_for`辅助工具的正确语法是什么?

9
以下是对于使用 -= 的区别: - 表示删除一个键值对,而 = 表示设置或更改一个键的值。
- content_for :header do
  %h1 Title

并且

= content_for :header do
  %h1 Title

什么是正确的方式?

1
对于那些想知道的人,字符“-”和“=”之间的区别是什么。 - Hoang Huynh
2个回答

20

那取决于你想做什么。

如果想立即呈现标题,请执行以下操作:

= 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)。


这在Rails 3.2中改变了,对吧?现在你应该使用= content_for :header而不是= yield :header了? - drewish
看起来你仍然可以同时使用两者,但 yield 在助手模块中无法工作(来源)。 - gylaz
啊,我在haml中的content_for中漏掉了“do”。谢谢! - Alex P

0

= yield :header虽然没有被弃用,但已经不再常用。Rails 3.2虽然支持它,但在辅助模块中会出现问题。

另一方面,content_for的使用效果很好,并且更常用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接