ruby-on-rails - Rails - 如何在自定义布局中使用 application.html.erb?

标签 ruby-on-rails ruby ruby-on-rails-2

我有一个名为“Pages”的 Controller ,其中包含大约 5 个页面( View ),我为其渲染了一个名为“page.html.erb”的布局。 所以我的“页面” Controller 有:

class PagesController < ApplicationController
layout 'page' 

我希望我的“page.html.erb”布局默认使用“application.html.erb”。如何使我的自定义布局“page.html.erb”自动继承/呈现“application.html.erb”?

最佳答案

如果您没有在 Controller 中指定布局,Rails 将默认呈现您的 application 布局。如果您遵循此约定,则可以将 application.html.erb 用于整个网站页面结构(也是包含样式表和 javascript 的好地方)。然后,您可以在布局中使用 = yield 来指定应在何处呈现 Controller View 。

默认情况下, Controller 操作将呈现其相应的 View 。例如,如果您在 Controller bars_controller.rb 中有一个操作 foo,Rails 将呈现 /app/views/bars/foo.html.erb 除非您重定向或指定要在操作中呈现的不同 View 。事实上,如果您在 action foo 中只想渲染页面,您甚至不需要在 Controller 中定义 action!

约定优于配置我的 friend 。

关于ruby-on-rails - Rails - 如何在自定义布局中使用 application.html.erb?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30099633/

相关文章:

ruby-on-rails - Rails 方法在用作参数时被称为符号?

ruby-on-rails - 无法启动我的 Rails 服务器 [linux]

ruby-on-rails - Ruby on Rails : can I use http basic auth in constraints?

ruby-on-rails - Rails Flash.now无法正常工作

ruby-on-rails - Rails 5 + Foreman + Pow 给我 "Couldn' t 到 localhost :5000"的代理请求

ruby-on-rails - 是否可以使用内部连接条件 delete_all ?

ruby-on-rails - 运行具有生命周期的 rails cron 作业

ruby-on-rails - 有没有办法在 RSpec 中先运行嵌套的前置过滤器?

mysql - 通过关联使用named_scope

ruby-on-rails - 将 .csv 文件保存到无法识别 to_hash 方法的数据库