2

好的,所以我有一个小项目,我制作了两个不同的脚手架。在 layouts 目录中,有两个不同的 layout.html.erb 文件。

我的问题是如何将其压缩为两个脚手架视图共享的一个主要布局文件。

基本上我这样做的目的是让我只需要将我的导航栏和标题以及其他类似的东西都放在一个地方。

4

2 回答 2

5

如果您将布局文件命名为 application.html.erb,那么它将是默认布局文件。如果您使用与控制器相同的名称指定布局文件,则会覆盖默认布局。

从 Rails 指南:

为了找到当前布局,Rails 首先在 app/views/layouts 中查找与控制器具有相同基本名称的文件。例如,来自 PhotosController 类的渲染动作将使用 app/views/layouts/photos.html.erb(或 app/views/layouts/photos.builder)。如果没有这种特定于控制器的布局,Rails 将使用 app/views/layouts/application.html.erb 或 app/views/layouts/application.builder。如果没有 .erb 布局,Rails 将使用 .builder 布局(如果存在)。Rails 还提供了几种方法来更精确地将特定布局分配给各个控制器和操作。

来源: http: //guides.rails.info/layouts_and_rendering.html

编辑:

我应该补充一点,您可以在应用程序控制器中指定任何布局作为默认布局:

class ApplicationController < ActionController::Base
  layout 'some_layout_name'
end

这将覆盖 rails 自动执行的名称匹配。

我希望这有帮助!

于 2010-07-26T04:16:08.657 回答
0

您可以application.html.erb在您的布局目录中有一个将由所有视图共享

于 2010-07-26T04:30:52.630 回答