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

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

我不想在每个视图中都写

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

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

【问题讨论】:

    标签: ruby-on-rails model-view-controller view


    【解决方案1】:

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

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

    【讨论】: