我是RoR的新手,我正在努力了解视图和布局之间的通信是如何工作的。
我找到了一些documentation,我得到了我需要使用provide
或content_for
方法,但它并没有真正解释它是如何完成的。
另外,为什么我需要在布局中使用yield来打印值?
实施例: home.html.erb(查看)
<% provide(:title, 'Home') %>
application.html.erb(layout)
<title>Great App | <%= yield(:title) %></title>
答案 0 :(得分:0)
在子视图中,您可以通过传递带有文本内容的块来使用这些方法中的任何一种(这对于长内容段落(例如包含HTML标记的段落)非常有用):
<% content_for :title do %>
<h1>The Title</h1>
<% end %>
或者您可以直接将字符串直接传递给#content_view
作为第二个参数:
<% content_for :title, "The Title" %>
ContentHelper模块中有一些关于这些方法的更好的文档。
布局只包装其他视图,子视图可以被认为是传递给布局的“块”。如果您以这种方式考虑它们,yield
关键字用于像块一样调用子视图是很自然的。