我网站上的所有页面都使用应用程序布局。我希望我的静态页面也使用静态页面布局。如何同时使用两种布局?
应用程序布局:
<html>
<head></head>
<body>
<%= yield %>
</body>
</html>
静态页面布局:
<div class="static">
</div>
静态页面:
<p>Hello</p>
我想让页面产生:
<html>
<head></head>
<body>
<div class="static">
<p>Hello</p>
</div>
</body>
</html>
答案 0 :(得分:2)
来自http://guides.rubyonrails.org/layouts_and_rendering.html#using-nested-layouts
在第二个布局中,静态页面布局:
<%= render :template => 'layouts/application' %>
<%= yield %>
class AController
layout 'static_layout'
static_layout
应位于视图/布局中。
我想你也可以使用布局约定:
class StaticController
文件app/views/layouts/static.html.erb
或者在render
来电中选择布局:
render 'something', layout: 'static'
答案 1 :(得分:1)
您需要了解yield
application.html.erb
<html>
<head></head>
<body>
<% if @static %>
<div class="static">
<%= yield :static %>
</div>
<% end %>
<%= yield %>
</body>
</html>
static_page.html.erb
<% content_for :static do %>
<p>Hello</p>
<% end %>
在静态页面控制器操作中,您只需要保持精简即可将@static
设置为真
答案 2 :(得分:0)
您好在控制器中使用layout
class StaticPagesController < .....
# you can apply only,execpt if you want
layout 'static'
def home
end
end