我有一个非常复杂的设计模板,它有不同的方法来包装它的上下文。
我必须使用
<body>
yield
</body>
有时
<body>
<div class="foo">
yield
</div>
</body>
有时候
<body>
<div class="bar">
<div id="breadcrumbs">
some content
</div>
<div class="innnerwrap" id="zurb">
yield
</div>
</div>
</body>
等等
我想能够从我的控制器控制它们。我以为我会制作template_helper.rb
来决定要展示什么。
答案 0 :(得分:0)
我看到了两种方法:
1.在控制器中设置布局:
class MyController < ApplicationController
layout 'admin', :only => [:show, :index]
# Controller methods
end
2.有1个布局,包含多个动态部分:
layout.html.erb:
<body>
<% if params[:controller] == 'MyController' && params[:action] == 'MyAction' %>
<% render :partial => 'partial1' %>
<% elsif params[:controller] == 'MyController' && params[:action] == 'MyAction2' %>
<% render :partial => 'partial2' %>
<% elsif params[:controller] == 'MyController2' && params[:action] == 'MyAction' %>
<% render :partial => 'partial3' %>
<% end %>
</body>
_partial1.html.erb
<%= yield %>
_partial2.html.erb
<div class="foo">
<%= yield %>
</div>
_partial2.html.erb
<div class="bar">
<div id="breadcrumbs">
some content
</div>
<div class="innnerwrap" id="zurb">
<%= yield %>
</div>
</div>