在 Ruby on Rails Web 应用程序中插入页眉和页脚?

Posted

技术标签:

【中文标题】在 Ruby on Rails Web 应用程序中插入页眉和页脚?【英文标题】:Inserting Headers and Footers in Ruby on Rails web application? 【发布时间】:2013-02-24 20:38:08 【问题描述】:

我来自 php 开发,正在尝试学习 Ruby on Rails。我想知道插入页眉和页脚的最佳做法是什么?通常在 PHP 中我会先做include('header.php'); 然后include('footer.php');

现在我正在尝试学习 Ruby on Rails 并尝试了解应该如何或在何处放置这些页眉/页脚文件?

我创建了一个新应用程序

rails new new_app

然后我生成了一个新的控制器

rails generate controller SignUp

这创建了一些文件和文件夹。我在新的new_app/views/sign_up 文件夹中开发了一些 html,但我想在此页面和以后的页面中包含页眉和页脚。我应该在哪里拥有这些文件?在同一个文件夹中?还是在new_app/views/layouts 的默认文件夹下?另外,创建文件后如何包含文件?

我是 ruby​​ on rails 开发的新手,我想从专家那里获得一些知识!谢谢!

【问题讨论】:

【参考方案1】:

new_app/views/layouts 中会有一个名为application.html.erb 的文件。打开该文件并将您的标题内容放在写入<%= yield> 的位置上方,将页脚内容放在<%=yield> 下方。

我通常在名为_header.html.erb_footer.html.erb 的布局文件中创建一个parital,然后执行以下操作:-

<%= render "layouts/header" %>
<%=yield %>
<%= render "layouts/footer" %>

【讨论】:

我添加了文件_header.html.erb_footer.html.erb 并包含了您在我的application.html.erb 中列出的代码,但我收到了一个错误ActionView::MissingTemplate... 还有,第一行怎么来的在您的代码中,"header" 之后有一个 %,而其他的则没有 % 编辑了我的答案,您必须在渲染时提供位置,在这种情况下,您必须说您的页眉和页脚部分位于 layouts 文件夹中。编辑后的答案应该有效【参考方案2】:

如果您有动态内容,您可以为页眉和页脚创建一个部分,并在布局文件中使用render 将它们包含在内。否则,您可以只编辑布局文件以包含页眉和页脚。

您为 SignUp 生成的脚手架视图都将使用布局文件来呈现最终的 HTML,因此 app/views/layouts/application.html.erb 文件中的所有内容都将包含在输出中(假设您使用此文件作为您的布局文件查看)。

【讨论】:

以上是关于在 Ruby on Rails Web 应用程序中插入页眉和页脚?的主要内容,如果未能解决你的问题,请参考以下文章

在 Ruby on Rails Web 应用程序中生成图表的首选方式是啥?

Ruby on Rails Web应用程序控制器生成错误

从头开始 Ruby On Rails Web 应用程序开发?

六个最酷的Ruby on Rails项目

Heroku上的现有Ruby on Rails Web应用程序(PostgreSQL),Devise身份验证,需要为移动支持添加Rails API

Rails Guides - Ruby on Rails 安全指南