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

时间:2016-12-05 13:33:08

标签: ruby-on-rails ruby filter activeadmin

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

使用以下代码实现User ActiveAdmin索引页面上的过滤器:

  filter :booking_status, as: :select

但是,这会导致下拉选项为0​​,1或2。

我更愿意,如果我可以将自己命名为" Incomplete"," Pending","确认"当管理员用户从下拉列表中选择它们时。

enter image description here

有没有办法在不改变模型中表示booking_status的方式的情况下这样做?

1 个答案:

答案 0 :(得分:9)

假设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}