【发布时间】:2015-05-27 15:15:21
【问题描述】:
我有两种不同的型号。一个叫“书”,一个叫“作者”。在 ActiveAdmin 中,当在“书籍”下创建新的“书籍”时,如何在表单中包含来自“作者”模型的作者列表的下拉列表?
我整天都在寻找提示,但还没有想出任何东西..任何帮助将不胜感激!
【问题讨论】:
标签: ruby-on-rails activeadmin formtastic
我有两种不同的型号。一个叫“书”,一个叫“作者”。在 ActiveAdmin 中,当在“书籍”下创建新的“书籍”时,如何在表单中包含来自“作者”模型的作者列表的下拉列表?
我整天都在寻找提示,但还没有想出任何东西..任何帮助将不胜感激!
【问题讨论】:
标签: ruby-on-rails activeadmin formtastic
alexandrine_greenfelder的回答是一个合适的解决方案,但是当涉及到更大的数据量时,这种加载条目以供选择需要很多时间。
pluck 在这种情况下要快得多:
f.input :author, as: :select, collection: -> { Author.pluck(:full_name, :id) }
也不知道我如何使用 lambda 为集合播种:
-> { Author.pluck(:full_name, :id) }
这样,一旦点击选择下拉菜单,数据就会从数据库中加载,而不是在模型初始化时(这样可以防止出现新的Author 实例被添加到数据库,但下拉菜单中还没有出现的情况)。
【讨论】:
使用这样的东西:
f.input :author, as: :select, collection: Author.all.map { |a| [a.full_name, b.id] }
在form 部分。
【讨论】: