ActiveAdmin:根据用户以前的选择选择嵌套属性

时间:2015-03-16 15:16:08

标签: ruby-on-rails ruby-on-rails-4 nested activeadmin

我想提供一个简单的界面,根据信息的层次结构选择信息。

在我的例子中,用户需要进入他的县。

一个县处于一个州,一个州是一个国家的一部分。所以这是我的rails模型:

# Country
class Country < ActiveRecord::Base
  has_many :states
end

# State
class State < ActiveRecord::Base
  belongs_to :country
  has_many :counties
end

# County
class County < ActiveRecord::Base
  belongs_to :state
end

因此,在我的用户界面中,用户应首先选择国家/地区,根据国家/地区选择显示相关州的列表,并根据所选州显示县列表。

是否可以使用ActiveAdmin

创建此行为

1 个答案:

答案 0 :(得分:0)

ActiveAdmin Addons gem 提供了在 ActiveAdmin 中集成 nested select 的选项

example page

  • 使用ajax请求
f.input :county_id, as: :nested_select,
                  level_1: {
                    attribute: :country_id,
                    url: '/api/countries'
                  },
                  level_2: {
                    attribute: :state_id,
                    url: '/api/states'
                  },
                  level_3: {
                    attribute: :county_id,
                    url: '/api/counties'
                  }
  • 带有预加载的集合
f.input :county_id, as: :nested_select,
                  level_1: {
                    attribute: :country_id,
                    collection: Country.all
                  },
                  level_2: {
                    attribute: :state_id,
                    collection: State.all
                  },
                  level_3: {
                    attribute: :county_id,
                    collection: County.all
                  }