18

在 Rails 应用程序的每个视图中添加页眉和页脚的标准方法是什么?

4

5 回答 5

26

如果找到此文件,将使用它。

应用程序/视图/布局/application.html.erb

<!doctype html>
<html>
  <head>
    <!-- stuff -->
  </head>
  <body>
    <!-- this is where content will be rendered -->
    <%= yield %>
  </body>
</html>

否则,您可以调用另一个。

# app/controllers/birds_controller.rb
class BirdsController < ApplicationController

  layout :birds   # looks for app/views/layouts/birds.html.erb

  # ...
end
于 2010-05-25T06:12:27.840 回答
9

将页眉和页脚放入可在app/views/layouts/application.html.erb找到的应用程序布局中。您可能必须先创建此文件。

于 2010-05-25T01:28:12.460 回答
3

要将任何“样板”代码添加到所有页面,请使用布局文件。它通常位于 app/views/layouts/ 中。

像使用任何其他 Rails 视图一样创建页面。一般来说,最好将<html>, body, etc 标签放置在布局中以避免重复。

在您希望单个视图的内容出现的位置,放置一个<% yield %>标签。由于 Ruby 的块语法和 Rails 实现布局的方式,这将允许控制器指定此布局的任何视图“继承”所有布局并仅插入特定于页面的内容。

要全局使用布局,请将文件命名为 application.html.erb 或指定 render :layout 选项。

于 2010-05-25T01:47:30.340 回答
1

您将在app/views/layouts/.

于 2010-05-25T01:31:45.543 回答
1

如 x1a4 所说,创建一个通用布局“app/views/layouts/.html.erb”。在里面你可以创建你的页眉和页脚

如果您愿意,可以将其作为两个部分并在布局文件中调用。但是如果你只有一个布局,你可能不需要这个

如果您有 2-3 种布局类型(如普通用户、管理员等),则在部分中使用页眉和页脚是有意义的

并在类声明之后的控制器中

class UsersController < ApplicationController layout 'layout name' end

干杯,萨梅拉

于 2010-05-25T05:22:57.427 回答