Sup*_*tha 5 ruby ruby-on-rails ruby-on-rails-2
我有一个名为“Pages”的控制器,其中包含大约 5 个页面(视图),我为其呈现了一个名为“page.html.erb”的布局。所以我的“页面”控制器有:
class PagesController < ApplicationController
layout 'page'
Run Code Online (Sandbox Code Playgroud)
我希望我的“page.html.erb”布局默认使用“application.html.erb”。如何让我的自定义布局“page.html.erb”自动继承/呈现“application.html.erb”?
如果您没有在控制器中指定布局,Rails 将application默认渲染您的布局。如果您遵循此约定,则可以将application.html.erb其用于整个站点页面结构(也是包含样式表和 javascript 的好地方)。= yield然后,您可以在布局中使用来指定控制器视图应呈现的位置。
默认情况下,控制器操作将呈现其相应的视图。例如,如果foo控制器中有一个操作bars_controller.rb,Rails 将呈现,/app/views/bars/foo.html.erb除非您重定向或指定要在该操作中呈现的不同视图。事实上,如果您想要在操作中做的所有事情foo就是渲染页面,您甚至不需要在控制器中定义操作!
约定优于配置我的朋友。