我正在构建一个管理名称空间,并且想知道是否有一个解决方案来阻止仅登录管理员访问此名称空间中的所有控制器。
到目前为止,我找到的唯一解决方案是向每个控制器添加以下内容:

before_action :require_admin

def require_admin
  unless current_user.admin?
    redirect_to root_path
  end
end

我在寻找更全球化的东西。

最佳答案

使用继承:
创建AdminController
使其延伸ApplicationController
使您的管理控制器扩展AdminController
将过滤器和方法放入AdminController中。
从具体的管理控制器中删除过滤器和方法。

09-10 16:05