Ruby on rails RubyonRails活动管理员有许多更改下拉列表以使用不同的列
我对ActiveAdmin和RoR完全陌生,我不知道如何更改一个有很多关联的下拉列表的可见值 填充模型Ruby on rails RubyonRails活动管理员有许多更改下拉列表以使用不同的列,ruby-on-rails,ruby,activeadmin,Ruby On Rails,Ruby,Activeadmin,我对ActiveAdmin和RoR完全陌生,我不知道如何更改一个有很多关联的下拉列表的可见值 填充模型 类填充
类填充
汽车模型
class-Cartrue
键是fillup\u id:integer
有很多:加油
结束
它当前显示的内容:
它当前显示im,假设分配给它的汽车的编码参考。
我需要它显示的是:
我需要它显示给定的描述,该描述在车型中定义为description:string
。
像这样的东西应该有用
在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
阅读以了解有关修改表单的更多信息
AciveAdmin使用时,您也应该阅读相关内容。在您的车型中,只需添加如下内容:
def to_s
description
end
它应该能完成任务
说明:实际上,您的Car
的to_s
方法返回与当前实例相对应的对象id,这是在使用像puts on object这样的方法时使用的默认值。要替换模型的显示名称,您必须覆盖此方法,当您使用put@car
或在您的模板中执行
时,此方法将在应用程序中的任何位置工作?再一次,我有点犯错误,用这个作为踏脚凳,让自己更容易犯错误。这仍然不能正常工作。您可以在此处查看完整代码:,直接链接到我放置代码的位置:将f.input:car\u id…
替换为f.input:car…
。ActiveAdmin理解关系。这就做到了,通过这个简单的问题学到了很多。谢谢你的辛勤工作。我真的很感激。以防万一你想要更多的代表。。我到处找这个。对于任何CakePHP开发人员来说,这类似于在模型中设置$displayField。
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
def to_s
description
end