ActiveAdmin 自定义 select 过滤器下拉列表名称

ActiveAdmin custom select filter dropdown names

对于用户模型,我有一个过滤器来检查用户的预订状态,该状态由整数值(0、1 或 2)表示。

User ActiveAdmin 索引页上的过滤器是通过以下代码实现的:

  filter :booking_status, as: :select

然而,这会导致下拉选项为 0、1 或 2。

如果管理员用户从下拉列表中选择它们时,我会自己将它们命名为 "Incomplete"、"Pending" 和 "Confirmed" 之类的名称。

有没有什么方法可以在不改变 booking_status 在模型中的表示方式的情况下做到这一点?

假设 booking_status 是您模型中的枚举字段,您可以使用:

filter :booking_status, as: :select, collection: ModelName.booking_statuses

如果 booking_status 不是枚举字段,您可以将常规哈希传递给 collection 选项,例如:

filter :booking_status, as: :select, collection: {'Incomplete' => 0, 'Pending' => 1, 'Complete' => 2}