bra*_*njp 4 templates ruby-on-rails
在我的控制器中,我正在使用 layout 'application', :only => :edit
但我注意到它layout 'application', :for => :edit也有效.
只是好奇,因为docs只提及:only&:except.我无法:for在任何文档中明确找到该layout方法.
Dyl*_*kow 10
正如我上面评论的那样,Rails忽略了你的:for参数,应该只对所有动作使用'application'布局.
就渲染多个布局而言,layout ...您的控制器似乎只能有一条线; 如果你有倍数,它只会使用最后一个.如果最后一个有一个:only或:except参数,它应该回退到application所有其他动作的布局.如果它没有正确使用application布局和渲染而没有任何布局,请确保以前的开发人员没有layout nil在控制器/应用程序中放置某些内容.
如果您想在控制器内部处理多个布局,您也可以尝试这样做:
class UsersController < ApplicationController
layout :choose_layout
def choose_layout
if action_name == "edit"
"application"
else
"login"
end
end
end
Run Code Online (Sandbox Code Playgroud)