我正在关注 ruby on rails 教程,我在用户视图中看到了以下内容,<% provide(:title, 'Sign up') %>
只是想知道这到底在做什么?
问问题
37 次
1 回答
3
这应该回答你的问题:
content_for?
只需使用 #content_for 检查是否已捕获任何内容
根据视图中的内容以不同方式呈现部分布局很有用。
例子
如果没有 #content_for :right_column,也许你会在布局中使用不同的 CSS
<%# This is the layout %>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>My Website</title>
<%= yield :script %>
</head>
<body class="<%= content_for?(:right_col) ? 'one-column' : 'two-column' %>">
<%= yield %>
<%= yield :right_col %>
提供(名称,内容 = nil,&block)
与 content_for 相同,但与流一起使用时会直接刷新回布局。换句话说,如果你想在渲染给定模板时多次连接到同一个缓冲区,你应该使用 content_for,如果没有,使用 provide 告诉布局停止寻找更多内容。
简短回答: 在 Ruby on Rails 教程中,提供的特殊 rails 函数用于在每个页面上设置不同的标题。根据您在标题上的哪个 static_page 进行相应设置。Ruby on Rails 教程书的 3.3.3(“Embedded Ruby”)中给出了进一步的解释。
于 2013-02-06T20:32:33.047 回答