可以查看不在rails上的ruby中扩展“application / application.html.erb”吗?

时间:2015-02-02 07:21:11

标签: ruby-on-rails ruby

众所周知,在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扩展?

1 个答案:

答案 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