首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Rails中对页面使用2种布局?

问如何在Rails中对页面使用2种布局?
EN

Stack Overflow用户
提问于 2013-05-30 12:35:17
回答 3查看 118关注 0票数 0

我的网站上的所有页面都使用应用程序布局。我希望我的静态页面也使用静态页面布局。如何同时使用这两种布局?

应用程序布局:

代码语言:javascript
复制
<html>
<head></head>
<body>
<%= yield %>

</body>
</html>

静态页面布局:

代码语言:javascript
复制
<div class="static">
</div>

静态页面:

代码语言:javascript
复制
<p>Hello</p>

我希望页面的结果是:

代码语言:javascript
复制
 <html>
   <head></head>
   <body>

    <div class="static">
    <p>Hello</p>
    </div>

   </body>
 </html>
EN

回答 3

Stack Overflow用户

发布于 2013-05-30 13:17:30

来自http://guides.rubyonrails.org/layouts_and_rendering.html#using-nested-layouts

在第二个布局中,静态页面布局:

静态布局

代码语言:javascript
复制
<%= render :template => 'layouts/application' %>

应用程序布局

代码语言:javascript
复制
<%= yield %>

要在其中使用静态布局的控制器

代码语言:javascript
复制
class AController
  layout 'static_layout'

static_layout应该在视图/布局中。

我想你也可以使用布局约定:

代码语言:javascript
复制
class StaticController

和一个文件app/views/layouts/static.html.erb

或在render调用中选择布局:

代码语言:javascript
复制
render 'something', layout: 'static'
票数 2
EN

Stack Overflow用户

发布于 2013-05-30 13:20:30

您需要了解yield的用法

application.html.erb

代码语言:javascript
复制
<html>
  <head></head>
  <body>
    <% if @static %>
      <div class="static">
        <%= yield :static %>
      </div>
    <% end %>
    <%= yield %>
  </body>
</html>

static_page.html.erb

代码语言:javascript
复制
<% content_for :static do %>
  <p>Hello</p>
<% end %>

现在你需要小心在静态页面控制器操作中将@static设置为true

票数 1
EN

Stack Overflow用户

发布于 2013-05-30 13:02:20

在控制器中使用layout

代码语言:javascript
复制
class StaticPagesController < .....

 # you can apply only,execpt if you want 
 layout 'static'

  def home

  end
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16828015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档