0

我仍在学习 HAML,并且有一些我不清楚的语法。

当我看到这样的代码时:

-content_for :primary_content do
  .content_container

content_for 块的作用和含义是什么?这是对特定布局的调用吗?还是 .content_container 是某个地方的类?

我问的原因是因为我有一些链接出现在页面上,我不确定它们为什么会出现在那里。我想知道 primary_content 是否获得了要渲染的代码块?如果是这样,我如何找到或查找此代码块?

谢谢!

4

3 回答 3

5

您的 HAML 大致相当于以下 ERB:

<%- content_for :primary_content do %>
    <div class='content_container'></div>
<%- end %>

本质上,“ content_for :symbol”定义了一段命名的内容,稍后将包含在布局或其他内容中。

.something是一种HAML简写方式,表示“让我成为 CSS 类所在的 div something”。

于 2012-04-20T14:57:48.120 回答
3

首先:content_for不是Haml的功能。它是 Ruby on Rails 视图中可用的助手之一。您也可以在 ERb 中使用它。

此方法呈现给定块但不输出它。要查看渲染结果,您必须调用= yield :keywhere :keyis the same symbol that was used for content_for。要检查是否生成了内容,请使用content_for? :key.

细节

于 2012-04-20T14:57:42.840 回答
1

您使用 content_for 将内容放在位于布局中某处的名为 primary_content 的占位符中。

http://api.rubyonrails.org/classes/ActionView/Helpers/CaptureHelper.html#method-i-content_for-3F

于 2012-04-20T14:56:51.253 回答