如何根据条件禁用 active_admin_import 操作

How to DISABLE active_admin_import action by condition

如何在索引页面

上禁用active_admin_import条件操作

我有一个代码可以根据条件禁用 'new, create, destroy' 操作。 需要对 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