首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拼音模板erb

拼音模板erb
EN

Stack Overflow用户
提问于 2009-12-15 15:37:59
回答 2查看 647关注 0票数 0

我有一个layout.html.erb文件,它应该作为所有页面的公共文件进行装饰,如下所示。

代码语言:javascript
复制
<%= render :partial => "layouts/header" %> 
  <%= render :partial => "layouts/leftsidemenu" %>
  <body>
    <%= @content_for_layout %>
  </body>
<%= render :partial => "layouts/footer" %>

我如何配置这个rails框架,以便我不想在所有页面中都包含layout.html.erb

代码语言:javascript
复制
<%= render :partial => "layouts/layout" %> 

我需要配置文件来装饰,就像我们在Struts框架中使用sitemesh decorator.xml文件一样。

提前感谢Mahesh

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-12-15 16:50:05

首先,Rails应用程序的默认布局是在<rails_app>/app/views/layouts/application.html.erb中使用的,因为所有控制器都继承自ApplicationController (参见名称,因为约定Rails使用与控制器具有相同基本名称的布局,或者父控制器的名称等等)。

其次,你的布局应该是这样的:

代码语言:javascript
复制
<%= render :partial => "header" %> 
<%= render :partial => "leftsidemenu" %>
<body>
  <%= yield %>
</body>
<%= render :partial => "footer" %>

甚至从页眉和页脚粘贴内容到此布局。有关布局的更多信息,可以在this guide中找到。

如果您想要更改页面的某些方面,例如标题,那么您也可以使用布局进行更改:

代码语言:javascript
复制
# header.html.erb
<head>
  <title>
    <%= yield(:title) of "Default title" %>
  </title>
</head>

# page.html.erb
<% content_for :title do %>
  Specific title
<% end %>

Page content

如果你想使用来自不同文件布局,那么你可以这样做:

代码语言:javascript
复制
# ApplicationController.rb

class ApplicationController < ActionController::Base
  # ...
  layout 'your_layout' # file in app/views/layouts
  # ...
end
票数 2
EN

Stack Overflow用户

发布于 2009-12-15 15:51:26

看看structuring layouts的Rails文档,特别是yieldcontent_for标记。您还可以在控制器中使用layout指定布局,或者为应用程序控制器中的所有控制器指定默认布局。

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

https://stackoverflow.com/questions/1905773

复制
相关文章

相似问题

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