【问题标题】:Configure all Devise controllers to use a different layout?将所有设计控制器配置为使用不同的布局?
【发布时间】:2014-04-08 17:16:24
【问题描述】:

我有一个 Rails 应用程序,其应用程序布局用于呈现 AngularJS 应用程序。但是,我希望所有的设计控制器都使用另一种布局。我不需要 Angular。

我如何告诉 Devise 为其所有控制器使用不同的布局?

【问题讨论】:

    标签: ruby-on-rails layout devise controller


    【解决方案1】:

    您可能应该查看此条目: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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-05
      • 2012-04-29
      • 2011-09-10
      相关资源
      最近更新 更多