在 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 应用程序开发?
Heroku上的现有Ruby on Rails Web应用程序(PostgreSQL),Devise身份验证,需要为移动支持添加Rails API