【发布时间】:2013-06-18 10:36:15
【问题描述】:
我正在寻找具有多个yields 的部分解决方案。
在实际示例中,我有这样的视图结构:
基本 application.erb (/views/layouts/application.erb):
<!DOCTYPE html>
<head>
<title>Some title</title>
</head>
<body>
<div class="page">
<%= yield %>
</div>
</body>
</html>
有些部分要干掉我的代码(/views/shared/content.erb):
<div class="content">
<div class="sidebar">
<%= yield :sidebar %>
</div>
<div class="main">
<%= yield %>
</div>
</div>
和控制器视图(/views/home/index.erb):
<%= render :partial => 'layouts/header' %>
<%= render :partial => 'shared/navigation' %>
<% # It is close to what I want to do %>
<%= render :layout => 'shared/content' do %>
<% content_for :sidebar do %>
<%# This is will go to application.erb, not in content.erb %>
<%= render :partial => 'shared/menu' %>
<% end %>
<%= yield %>
<% end %>
<%= render :partial => 'layouts/footer' %>
所以这里的主要问题是要有一个具有多个屈服区域的模板块,并且能够传递自定义 html 或呈现另一个部分。
【问题讨论】:
标签: ruby-on-rails templates model-view-controller view