我有两种不同的型号。一个名为“书籍'还有一个名为“作者”的作品。在ActiveAdmin中,当创建一本新书时,在'图书'下,如何在表单中添加一个下拉列表,其中包含来自“作者”的作者列表。模型?
我一整天都在寻找暗示,并且还没有设法提出任何建议......任何帮助都将不胜感激!
答案 0 :(得分:3)
alexandrine_greenfelder 的答案是一个合适的解决方案,但是当涉及到更大量的数据时,这种用于选择的加载条目需要花费大量时间。
在这种情况下, pluck
要快得多:
f.input :author, as: :select, collection: -> { Author.pluck(:full_name, :id) }
另外请注意我如何使用lambda为一个集合播种:
-> { Author.pluck(:full_name, :id) }
这样,一旦单击选择下拉列表,数据将从数据库加载,而不是在初始化模型时(这会阻止情况,当新的Author
实例添加到db,但尚未出现在下拉列表中)。
答案 1 :(得分:2)
使用类似的东西:
f.input :author, as: :select, collection: Author.all.map { |a| [a.full_name, b.id] }
<{1>}部分中的。