众所周知,在ruby on rails
中,所有观看次数都来自application/application.html.erb
,大部分时间都是如此,例如application.html.erb
如下:
<html>
<head></head>
<body>
<%= render 'layouts/header' %>
<%= yield %>
</body>
</html>
我不需要在每个视图中再次编写相同的代码,但有时,只是在视图上是特殊的,这个视图与视图不同,例如我不想在此视图中添加<%= render 'layouts/header' %>
在这种情况下,参数可能会帮助我,但我想知道是否有任何视图无法从application/application.html.erb
扩展?
答案 0 :(得分:4)
观点不会从&#39;延伸application.html.erb
,他们将其用作默认布局。您可以使用控制器中的layout
方法(或layout
方法中的render
选项)进行更改,如下所示:
# this changes the default layout in every views of `AdminController` (and all other controllers that inherit from `AdminController`):
class AdminController < ApplicationController
layout :admin
# ...
end
# this changes the layout of specific action:
class SomethingController < ApplicationController
# ...
def some_action
# ...
render layout: :some_layout
end
end
以下是参考: http://guides.rubyonrails.org/layouts_and_rendering.html