我有一个Rails应用程序,应用程序布局用于呈现AngularJS应用程序。但是,我希望所有Devise控制器都使用另一种布局。我不需要Angular。
如何告诉Devise为其所有控制器使用不同的布局?
答案 0 :(得分:4)
您可能应该查看此条目:How To: Create custom layouts。
或多或少,您可以通过ApplicationController
:
class ApplicationController < ActionController::Base
layout :layout_by_resource
protected
def layout_by_resource
if devise_controller?
"layout_name_for_devise"
else
"application"
end
end
end
或通过配置(config / application.rb):
config.to_prepare do
Devise::SessionsController.layout "devise"
Devise::RegistrationsController.layout proc{ |controller| user_signed_in? ? "application" : "devise" }
Devise::ConfirmationsController.layout "devise"
Devise::UnlocksController.layout "devise"
Devise::PasswordsController.layout "devise"
end