我是ActiveAdmin和RoR的新手,我无法弄清楚如何在has_many关联中更改下拉列表的可见值。
class Fillup < ActiveRecord::Base
// key is car_id:integer
belongs_to :car
end
class Car < ActiveRecord::Base
validates :description, :presence => true
key is fillup_id:integer
has_many :fillups
end
它当前显示我假设对分配给它的Car的编码引用。
我需要它来显示给定的描述,description:string
中定义为Car Model
。
答案 0 :(得分:10)
这样的事情应该有用......
在app/admin/model_name.rb
form do |f|
f.inputs "My Model Name" do
# add your other inputs
f.input :cars, :collection => Car.all.map{ |car| [car.description, car.id] }
f.buttons
end
end
阅读this article以了解有关修改表单的详情。
AciveAdmin使用formtastic,你也应该阅读它。
答案 1 :(得分:5)
在Car
模型中,只需添加以下内容:
def to_s
description
end
它应该做的工作!
说明:实际上,你的Car
的{{1}}方法返回对应当前实例的对象id,这是使用像puts这样的方法时使用的默认值一个东西。要替换模型的显示名称,您必须覆盖此方法,当您使用to_s
或在模板中执行puts @car