活动管理员:如何自定义选择过滤器的标签?

Aus*_*ork 8 ruby-on-rails filter ruby-on-rails-3 activeadmin

这似乎应该相当简单,买到我还没有找到关于这个主题的任何文件.

我有以下过滤器:

filter :archived, as: :select
Run Code Online (Sandbox Code Playgroud)

...它给了我一个选择框形式的工作过滤器,选项"Any","Yes"和"No".

我的问题是:如何自定义这些标签,使功能保持不变,但标签是"全部","实时"和"已存档"?

Ami*_*tin 14

快速简便:

filter :archived, as: :select, collection: [['Live', 'true'], ['Archived', 'false']]
Run Code Online (Sandbox Code Playgroud)

但是,这不会让您在不更改I18n的情况下自定义"全部"选项.

更新:这是另一种选择:

# Somewhere, in an initializer or just straight in your activeadmin file:
class ActiveAdmin::Inputs::FilterIsArchivedInput < ActiveAdmin::Inputs::FilterSelectInput
  def input_options
    super.merge include_blank: 'All'
  end

  def collection
    [ ['Live', 'true'], ['Archived', 'false'] ]
  end
end

# In activeadmin
filter :archived, as: :is_archived
Run Code Online (Sandbox Code Playgroud)