我正在寻找一个解决方案,可以在具有多个
在实际例子中,我有这样的视图结构:
基本应用程序.erb(/views/layouts/application.erb):
一些偏爱 DRY 的代码(/views/shared/content.erb):
控制器视图(/views/home/index.erb):
所以这里的主要问题是有一个带有多个 yield 区域的模板块,并且可以传递自定义的 HTML 或渲染另一个 partial。
yields
的部分中使用。在实际例子中,我有这样的视图结构:
基本应用程序.erb(/views/layouts/application.erb):
<!DOCTYPE html>
<head>
<title>Some title</title>
</head>
<body>
<div class="page">
<%= yield %>
</div>
</body>
</html>
一些偏爱 DRY 的代码(/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' %>
所以这里的主要问题是有一个带有多个 yield 区域的模板块,并且可以传递自定义的 HTML 或渲染另一个 partial。
/shared/content/default.erb
,/shared/content/with_menu.erb
- a.s.panchenko