为整个命名空间设置authenticate_user

时间:2017-09-29 14:21:11

标签: ruby-on-rails devise namespaces

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

namespace :admin do
  ...
end

我只是想知道是否有办法对admin命名空间内的所有控制器使用设计before_filter,authenticate_user,而不是在每个控制器中调用此方法。

1 个答案:

答案 0 :(得分: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