我正在构建一个Admin命名空间,并且想知道是否有一个解决方案可以阻止访问此命名空间中的所有控制器,仅限登录管理员。
到目前为止,我找到的唯一解决方案是向每个控制器添加以下内容:
before_action :require_admin
def require_admin
unless current_user.admin?
redirect_to root_path
end
end
我正在寻找更全球化的东西。
答案 0 :(得分:4)
只需使用继承:
AdminController
。ApplicationController
。AdminController
。AdminController
。答案 1 :(得分:0)
您也可以将该代码添加到ApplicationContoller
,而不是将其添加到每个控制器,并在不需要管理员权限的控制器中使用skip_before_action :require_admin
。