rog*_*rkk 5 ruby-on-rails activeadmin
我正在构建一个界面来管理可以连接很多人的组织.总人数由几千人组成.
据我所知,AA对于这种情况并没有真正的好系统.
到目前为止,我在表单块中使用了类似的东西来添加/删除组织中的人员:
f.has_many :person_organizations, for: [:person_organizations, f.object.person_organizations.active] do |connection_f|
all_people = Person.select([:id, :firstname, :lastname]).order(:firstname, :lastname)
connection_f.input :person, as: :select,
collection: all_people,
member_label: proc { |d| "#{d.firstname} #{d.lastname}"
unless connection_f.object.nil?
# Show the destroy checkbox only if it is an existing person
# else, there's already dynamic JS to add / remove new dentists
connection_f.input :_destroy, as: :boolean, label: 'Delete this connection'
end
end
Run Code Online (Sandbox Code Playgroud)
这样做的问题是,在向组织添加一些人之后,生成所有选择框所花费的时间开始变得很大,因为它必须为每个元素执行几乎相同的工作.见下方("slett denne koblingen"的意思是"删除此连接")

有谁知道减轻这种疼痛的方法?
我有几个想法,但我不太明白我将如何实现它们:
此外,我知道有一个github问题讨论了这种挑战的解决方案,但它似乎还有一段距离,如果它将被实现:https://github.com/activeadmin/activeadmin/issues/ 2692#issuecomment-71500513
我也遇到过同样的迟缓。您面临的挑战是将创建的填充选择的数量。我建议使用某种形式的 AJAX 和 Select2/Chosen 组合来“自动完成”文本框输入。这将大大减少 HTML 占用空间并加快加载时间。您的管理员也可能会更欣赏用户体验。
https://github.com/activeadmin/activeadmin/issues/1754
https://github.com/mfairburn/activeadmin-select2
Viget Labs 有一个 gem,它提供了处理自动完成关联的替代解决方案。 https://github.com/vigetlabs/active_admin_associations
| 归档时间: |
|
| 查看次数: |
437 次 |
| 最近记录: |