1

如何在索引页面上按条件禁用 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(
  ....
  )
4

1 回答 1

2

你可以使用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

于 2019-11-23T14:47:27.497 回答