如何根据条件禁用active_admin_import操作



如何在索引页上按条件禁用active_admin_import操作

我有一个按条件禁用"新建、创建、销毁"操作的代码。需要对active_admin_import 执行相同操作

controller do
def action_methods
if Admin::PurchaseOrderDecorator.decorate(parent).received?
super - %w(new create destroy)
else
super
end
end
end
active_admin_import(
....
)

您可以使用if选项

https://github.com/activeadmin-plugins/active_admin_import/commit/aa0be4bbb3151ab50911c1041415044936fba068

像这样的东西可能会起的作用

active_admin_import if: -> { Admin::PurchaseOrderDecorator.decorate(parent).received? }

然而,通过策略处理有条件访问操作的另一个选项

# frozen_string_literal: true
class OrderItemPolicy < ApplicationPolicy
def import?
!order.completed?
end
end

文档

https://activeadmin.info/13-authorization-adapter.html

专家https://github.com/varvet/pundit

最新更新