【问题标题】:How to DISABLE active_admin_import action by condition如何按条件禁用 active_admin_import 操作
【发布时间】:2019-11-07 15:04:35
【问题描述】:

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

【问题讨论】:

  • 禁用喜欢删除它或隐藏它?我不知道你到底指的是什么,但你可以尝试在应用程序控制器上购买它
  • 不删除、隐藏链接、路由。一般禁用此功能。如果父母有一些条件。例如订单已经“收到”我无法通过 active_admin_import 方法上传文件

标签: ruby-on-rails activeadmin active-admin-import


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-21
    • 1970-01-01
    • 2014-10-14
    • 1970-01-01
    • 1970-01-01
    • 2016-12-28
    相关资源
    最近更新 更多