0

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

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

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

4

1 回答 1

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

从另一个用户的代码中借来的,但现在我再也找不到源代码了。

于 2013-09-06T16:12:00.690 回答