是<%= yield%> Rails相当于MVC3的RenderContent()?

时间:2012-01-29 23:12:06

标签: ruby-on-rails asp.net-mvc-3 layout

我正在关注Ruby of Rails getting started guide,我在布局文件中看到了这段代码:

<!DOCTYPE html>
<html>
  <head>
    <title>Blog</title>
    <%= stylesheet_link_tag "application" %>
    <%= javascript_include_tag "application" %>
    <%= csrf_meta_tags %>
  </head>
  <body style="background: #EEEEEE;">

    <%= yield %>

  </body>
</html>

来自MVC3背景,这是否相当于从_layout.cshtml文件调用的RenderContent()方法?

1 个答案:

答案 0 :(得分:2)

该功能在该上下文中大致相同,是的。但是,yield通常是ruby语言中关于块的关键字。您可以在此处找到更多信息:ruby blocks

在此基础上,您可以使用content_for(:something)yield :somethingyield传递:something到布局引擎,布局引擎,为不同的部分提供内容填写内容)。