1

我是 RoR 的新手,我试图了解视图和布局之间的通信是如何工作的。

我找到了一些文档,我知道我需要使用providecontent_for方法,但它并没有真正解释它是如何完成的。

另外,为什么我需要在布局中使用 yield 来打印值?

示例:home.html.erb(视图)

<% provide(:title, 'Home') %>

application.html.erb(布局)

<title>Great App | <%= yield(:title) %></title>
4

1 回答 1

0

在您的子视图中,您可以通过传递带有文本内容的块来使用这些方法中的任何一种(这对于包含 HTML 标记的长内容段落很有用):

<% content_for :title do %>
  <h1>The Title</h1>
<% end %>

#content_view或者您可以简单地将字符串作为第二个参数直接传递给:

<% content_for :title, "The Title" %>

在ContentHelper模块中有一些关于这些方法的更好的文档。

布局只是包装其他视图,子视图可以被认为是传递给布局的“块”。如果你这样想的话,很自然地,yield关键字被用来像块一样调用子视图。

于 2013-04-02T02:33:35.627 回答