有可能做这样的事情:
class SimulationController < ApplicationController layout "generic", :only => [:login, :invalid] layout "menubar", :except => [:login, :invalid]
由于某种原因,我的login
页面仍然使用菜单栏布局(我可以告诉,因为菜单栏将出现在顶部).如果我注释掉第3行,菜单栏将消失.所以看起来两个布局都是一个接一个地应用.
但是,如果我注释掉这layout "generic"
一点,我将只是黑白,这意味着没有应用CSS样式表.
您似乎在尝试在不同的运行时条件下应用不同的布局.解决此问题的最简单方法是使用布局的方法参考.
例如: -
class ResourceController < ActionController::Base layout :choose_layout private def choose_layout if [ 'signup', 'login' ].include? action_name 'login_layout' else 'admin_layout' end end
查看"布局类型"标题下的ActionController :: Layout 的Rails API参考