`
hideto
  • 浏览: 2648260 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Rails宝典之第八式: layout与content_for

    博客分类:
  • Ruby
阅读更多
如果我们想根据模板页面更改局部layout,使用content_for即可。
content_for允许模板页面代码放到layout中的任何位置。

比如我们的Rails程序不同的页面有不同的css样式,我们可以在layout里留出位置:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
  <head>
    <title>Todo List</title>
    <%= stylesheet_link_tag 'application' %>
    <%= yield :head %>
  </head>
  <body>
    <div id="container">
      <h1>Todo List</h1>
      <%= yield %>
    </div>
  </body>
</html>

我们用yield :head来给模板页面某段代码留个"座位",再看页面:
<% content_for :head do %>
  <%= stylesheet_link_tag 'projects' %>
<% end %>
<h2>Projects</h2>
<ul>
<% for project in @projects %>
  <li><%= project.name %></li>
<% end %>

content_for :head里面的代码将填充layout里的yield :head。
layout+content_for,很灵活吧。
分享到:
评论
3 楼 hiveer 2014-04-18  
很好!我寻找很久的东西!
2 楼 robin5475 2009-07-22  
good!
1 楼 pmq20 2008-01-06  
感谢分享!

相关推荐

Global site tag (gtag.js) - Google Analytics