Rails 渲染模板

Posted

技术标签:

【中文标题】Rails 渲染模板【英文标题】:Rails render template 【发布时间】:2017-06-22 11:00:47 【问题描述】:

是否可以在整个应用中根据条件渲染不同的模板?

我不想在每个视图中都写

if domain =='cool'
  render template 'cool/index'
else
  regular template
end

我想我需要在application controller 中为它做点什么

【问题讨论】:

【参考方案1】:

您可以像这样在 ApplicationController 中实现这一点。通过将符号传递给布局方法,它允许您为应用程序中的所有控制器动态分配布局。

class ApplicationController
  layout :special_layout

  private
    def special_layout
      (domain =='cool') ? "cool" : "not_cool"
    end

end

【讨论】:

以上是关于Rails 渲染模板的主要内容,如果未能解决你的问题,请参考以下文章

Rails 6.1 如何将文件渲染到页面模板中

为啥 Rails 找不到我的 jbuilder 模板或不渲染它?

如何渲染 XML 模板,然后在 Ruby on Rails 3.2.8 中使用 SEND_DATA?

将 Rails 渲染格式限制为 html 的方法

定义? Ruby 和 Rails 中的方法

rails 部分模板中的可选局部变量:我如何摆脱(定义的?foo)混乱?