4

我对 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:stringCar Model. 在此处输入图像描述

4

2 回答 2

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

阅读本文以了解有关修改表单的更多信息。

AciveAdmin 使用 formtastic 您也应该阅读相关内容。

于 2012-05-22T15:43:09.560 回答
5

在您的Car模型中,只需添加以下内容:

def to_s
  description
end

它应该做的工作!

说明:实际上,您Carto_s方法返回与当前实例对应的对象 id,这是在对象上使用诸如 puts 之类的方法时使用的默认值。puts @car要替换模型的显示名称,您必须覆盖此方法,当您使用或在模板中执行时,它将在您的应用程序中的任何位置工作<%= @car %>

于 2012-05-22T15:45:11.757 回答