【发布时间】:2014-04-08 17:16:24
【问题描述】:
我有一个 Rails 应用程序,其应用程序布局用于呈现 AngularJS 应用程序。但是,我希望所有的设计控制器都使用另一种布局。我不需要 Angular。
我如何告诉 Devise 为其所有控制器使用不同的布局?
【问题讨论】:
标签: ruby-on-rails layout devise controller
我有一个 Rails 应用程序,其应用程序布局用于呈现 AngularJS 应用程序。但是,我希望所有的设计控制器都使用另一种布局。我不需要 Angular。
我如何告诉 Devise 为其所有控制器使用不同的布局?
【问题讨论】:
标签: ruby-on-rails layout devise controller
您可能应该查看此条目: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
【讨论】: