【问题标题】:Setup authenticate_user for an entire namespace为整个命名空间设置 authenticate_user
【发布时间】:2018-03-11 11:28:02
【问题描述】:

我有一个管理员命名空间设置:

namespace :admin do
  ...
end

我只是想知道是否有一种方法可以将设计 before_filter, authenticate_user 用于 admin 命名空间内的所有控制器,而不是在每个单独的控制器中调用此方法。

【问题讨论】:

    标签: ruby-on-rails devise namespaces


    【解决方案1】:

    您可以在“基本”管理控制器的顶层设置回调,如下所示:

    class Admin::AdminController < ApplicationController
    
      before_action :authenticate_admin_user!
    end
    

    这将影响从 AdminController 继承的任何控制器

    在此示例中,您有一个通用管理控制器,您希望在其中放置管理控制器通用的方法:

    class Admin::GenericAdminController < Admin::AdminController
      def show
      end
    
      def new
      end
    
      def edit
      end
    
      ...
    end
    

    【讨论】:

    • 需要注意的一点,Devise 足够聪明,可以根据您在路线中命名的 before_action 来确定它。在这种情况下,它是authenticate_admin。感谢您的帮助。
    猜你喜欢
    • 2019-04-18
    • 2014-12-31
    • 2012-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-06
    相关资源
    最近更新 更多