1

我正在关注 ruby​​ on rails 教程,我在用户视图中看到了以下内容,<% provide(:title, 'Sign up') %>只是想知道这到底在做什么?

4

1 回答 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 回答