我在我的rails应用程序中使用Active admin,并希望根据国家/地区过滤公司模型,我在公司表中有一个数据类型为字符串的国家列,并且我正在使用country-select
gem。所以我实际上正在做的是
filter :country, as: :country
但这不起作用,任何人都可以帮我获得工作国家/地区过滤器吗?
我知道这段代码filter :country, as: :string
有效,但我想要一个包含所有国家/地区的选择列表
这是您在 AA 中使用过滤器的方式:
filter :country, as: :select
这样做的作用是创建一个用于选择的集合,其中Company
类的每个实例都按名为 country
的属性映射
编辑
根据注释,要使用国家/地区名称而不是代码,您可以使用以下内容:
filter :country, as: :select, collection: ActionView::Helpers::FormOptionsHelper::COUNTRIES
编辑#2
要在视图中显示国家/地区名称而不是国家/地区代码,您必须执行以下操作:
column :country do |g|
ISO3166::Country[g.country]
end
我有一个名为 Soundwave 的模型,并且有一个国家/地区字段,仅包含两个国家/地区:英国和美国。所以,我做了一个这样的集合:
filter :country, as: :select, collection: -> {
Soundwave.group(:country).select(:country).map(&:country)
}