【问题标题】:CanCan authorize all controllersCanCan 授权所有控制器
【发布时间】:2013-09-03 22:52:22
【问题描述】:
我已经使用 ActiveAdmin 设置了 CanCan 和 Rolify,现在是时候在我的控制器上强制授权了。
我必须在每个控制器上authorize_resource(我们现在有几十个模型和控制器),还是有办法将它应用到我所有的 ActiveAdmin 控制器上?
我尝试在 ActiveAdmin.setup 的 before_filter 中调用它,但没有奏效。
【问题讨论】:
标签:
ruby-on-rails
activeadmin
cancan
【解决方案1】:
我做了一个初始化器: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
借用别人的代码,现在找不到源了。