假设我有:
# layouts/application.html.erb
<html>
<head>
<body>
<p>Hi</p>
<%= yield :toolbar1 %>
<%= yield :toolbar2 %>
<%= yield %>
</body>
</head>
</html>
以及视情况而定的另外两种布局:
# layouts/toolbar1.html.erb
<% content_for :toolbar1 do %>
<p>toolbar1</p>
<% end %>
# layouts/toolbar2.html.erb
<% content_for :toolbar2 do %>
<p>toolbar2</p>
<% end %>
如何在每个控制器的基础上有条件地加载:toolbar1
和toolbar2
,例如:
# Controller where *only* :toolbar1 should be present on show action
class TestController < ApplicationController
def show
render "show", layout: "toolbar1"
end
end
...不起作用,因为它只try 加载toolbar1.html.erb
而不加载application.html.erb
布局.基本上,我想组成布局控制器的控制器(如果你愿意,路由由路由).