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

現在表示されているもの:

現在、割り当てられた車へのエンコードされた参照を想定しているimを示しています。 ここに画像の説明を入力してください

表示する必要があるもの:

description:stringのように定義されている与えられた説明を表示するために必要Car 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 @carまたはテンプレート内で機能します。<%= @car %>

于 2012-05-22T15:45:11.757 に答える