CanCan授权所有控制器

时间:2013-09-03 22:52:22

标签: ruby-on-rails activeadmin cancan

我已经使用ActiveAdmin设置了CanCan和Rolify,现在是时候强制我的控制器授权了。

我是否必须在每个控制器上authorize_resource(我们现在有几十个模型和控制器),或者有没有办法将它应用到我的所有ActiveAdmin控制器?

我尝试在ActiveAdmin.setup的before_filter中调用它,但这不起作用。

1 个答案:

答案 0 :(得分:0)

我制作了初始化程序:config / initializers / active_admin-cancan.rb

module ActiveAdmin
  class ResourceController    
    # If you don't skip loading on #index you will get the exception:
    #
    #     "Collection is not a paginated scope. Set collection.page(params[:page]).per(10) before calling :paginated_collection."

    load_resource :except => :index
    authorize_resource

    def scoped_collection
      end_of_association_chain.accessible_by(current_ability)
    end
  end
end

借用其他用户的代码,但现在我无法找到该来源了。