创建“主布局”在 Rails 中查看?

发布于 2024-09-11 12:39:15 字数 149 浏览 3 评论 0原文

好吧,我有一个小项目,其中有两个不同的脚手架。在布局目录中有两个不同的layout.html.erb 文件。

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

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

Ok so I have a small project with two different scaffoldings I've made.In the layouts directory therefor there is two different layout.html.erb files.

My question is how to condense this into just one main layout file that the two scaffolded views share.

Basically my purpose for doing this is so that I only have to have my navigation bar and header and other such things all in one place.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

上课铃就是安魂曲 2024-09-18 12:39:15

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

来自 Rails 指南:

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

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

编辑:

我应该添加您可以在应用程序控制器中指定任何布局作为默认布局:

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

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

我希望这有帮助!

if you name the layout file application.html.erb, then it will be the default layout file. If you specify a layout file by the same name of your controller, that will override the default layout.

From Rails Guides:

To find the current layout, Rails
first looks for a file in
app/views/layouts with the same base
name as the controller. For example,
rendering actions from the
PhotosController class will use
app/views/layouts/photos.html.erb (or
app/views/layouts/photos.builder). If
there is no such controller-specific
layout, Rails will use
app/views/layouts/application.html.erb
or
app/views/layouts/application.builder.
If there is no .erb layout, Rails will
use a .builder layout if one exists.
Rails also provides several ways to
more precisely assign specific layouts
to individual controllers and actions.

source: http://guides.rails.info/layouts_and_rendering.html

EDIT:

I should add that you can specify any layout to be your default in the Application Controller:

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

And that will override name matching that rails does automatically.

I hope this helps!

彩扇题诗 2024-09-18 12:39:15

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

You can have an application.html.erb in your layouts directory that will be shared by all of the views

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文