我有一个active_admin
形式的选择字段,它是一个关联的活动记录关系Travel
,我只希望这些旅行显示为status = "active"
。知道如何创建一个仅在活动记录表单上使用的范围吗?
答案 0 :(得分:0)
正如您在README上看到的那样,ActiveAdmin使用Formtastic来构建表单。 在Formtastic docs中,您可以在使用标题下看到如何使用集合。
所以,在你的Travel
模型中,你需要一个范围(或者,一个类方法返回ActiveRecord::Relation
)
class Travel < ActiveRecord::Base
scope :actives, where(status: 'active')
end
然后在 ActiveAdmin表单中,您可以在:collection
选项上使用该范围
form do |f|
f.inputs "a nice title" do
f.input :travel_id, as: :select, collection: Travel.actives
end
end
也许您需要格式化范围结果。做这样的事情:
Travel.actives.map{|t| [t.name,t.id]}