0

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

应用布局:

<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>
4

3 回答 3

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'
于 2013-05-30T05:17:29.917 回答
1

你需要了解yield

应用程序.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为 true

于 2013-05-30T05:20:30.367 回答
0

嗨在控制器使用中layout

class StaticPagesController < .....

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

  def home

  end
end
于 2013-05-30T05:02:20.023 回答