【问题标题】:Different layout for devise controller, problem when form errors设计控制器的不同布局,表单错误时的问题
【发布时间】:2011-04-19 09:47:59
【问题描述】:
我在 application_controller 中为我的登录和注册视图分配了不同的布局,如下所示:
layout :layout_by_resource
def layout_by_resource
if devise_controller? && resource_name == :user && action_name == 'new'
"login"
else
"application"
end
end
输入登录或注册信息时,它可以完美运行。但是注册时出现验证错误,标准应用程序布局被渲染。任何建议我做错了什么?
谢谢!
【问题讨论】:
标签:
ruby-on-rails
views
devise
【解决方案1】:
def layout_by_resource
devise_controller? ? 'login' : 'application'
end
;)
【解决方案2】:
好的,我自己修好了 ;) 必须检查 create 操作...
layout :layout_by_resource
protected
def layout_by_resource
if controller_name == 'registrations' && action_name == 'new'
'login'
elsif controller_name == 'registrations' && action_name == 'create'
'login'
elsif controller_name == 'sessions' && action_name == 'new'
'login'
else
'application'
end
end