每个控制器的Rails布局

0xS*_*ina 18 ruby-on-rails

我有一个家庭控制器和一个新闻控制器.我希望这两个控制器都使用application.html.erb布局文件,除此之外,对于家庭,使用家庭布局和新闻,使用新闻布局.然后渲染一个特定的视图.在轨道中这可能吗?

换句话说,我不希望为每个视图指定一个布局,但是每个控制器都要从application.html.erb布局继承.

我想要做的是删除添加顶部导航栏的冗余,并在每个布局文件中包含javascript/css.我宁愿将其包含在一个文件中,并使用另一个布局执行控制器特定布局,然后最终渲染视图.

谢谢

Tim*_*ers 35

您可以告诉控制器使用特定布局,例如

class HomeController < ApplicationController
  layout 'home'
end

class NewsController < ApplicationController
  layout 'news'
end
Run Code Online (Sandbox Code Playgroud)

这些将期望app/views/layouts/home.html.erb等中的布局


var*_*tis 9

class ProductsController < ApplicationController
  layout "inventory"
  #...
end
Run Code Online (Sandbox Code Playgroud)

http://guides.rubyonrails.org/layouts_and_rendering.html


Dav*_*acs 8

我想你想要的是一个嵌套的布局.我不会在这里重复所有内容,而是将您引导至 http://guides.rubyonrails.org/layouts_and_rendering.html#using-nested-layouts