我的 class Site::BaseController < ApplicationController 中有方法

before_filter :check_layout

   def check_layout
    if @user.site_theme == 'hometastic'
      layout 'hometastic'
    else
      layout 'agent'
    end
  end

当我只做
layout 'agent'

它完美地工作

但是当我添加 before_filter 时,我得到了 undefined method layout for
rails 3.2.16

有什么建议么?
error screen

最佳答案

您可以使用 Rails 在处理请求时用来评估它的符号。 Guides

layout :themed_layout

def themed_layout
  if @user.site_theme == 'hometastic'
    'hometastic'
  else
    'agent'
  end
end

10-08 09:46