使用 ActiveAdmin 和 CanCan 阻止 batch_actions

Blocking batch_actions with ActiveAdmin and CanCan

我正在使用 ActiveAdmin 和 Cancan 进行授权。在我的能力模型中,我将用户设置为只有阅读能力。这按预期工作,除了用户仍然可以 select 设备(我限制的模型)然后执行 batch_update 来编辑其中一个或多个。我无法在视图中阻止它,因为该按钮是由 ActiveAdmin 呈现的。

我在 admin/devices 控制器中尝试过类似的东西..

if can? :manage
  collection_action :batch_update do
    blah blah
  end
end

但后来我得到未定义的方法“可以吗?”为了 #

有什么建议吗?

您可以有条件地显示块操作:

https://github.com/activeadmin/activeadmin/blob/master/docs/9-batch-actions.md#conditional-display