24

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

换句话说,我不想为每个视图指定一个布局,而是为每个控制器指定一个布局,它们都继承自 application.html.erb 布局。

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

谢谢

4

2 回答 2

45

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

class HomeController < ApplicationController
  layout 'home'
end

class NewsController < ApplicationController
  layout 'news'
end

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

于 2012-07-03T00:31:43.403 回答
12
class ProductsController < ApplicationController
  layout "inventory"
  #...
end

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

于 2012-07-03T00:32:34.577 回答