I am completely new to ActiveAdmin and RoR and i cant figure out how to change the visible value of the dropdowns in a has_many association.
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
It currently shows im assuming an encoded reference to the Car assigned to it.
I need it to show the description given which is defined as description:string
in the Car Model
.
Something like this should work...
In 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
Read this article to learn more about modifying the form.
AciveAdmin uses formtastic, you should read about that as well.
In your Car
model, just add something like :
def to_s
description
end
It should do the job !
Explanation : Actually, your Car
's to_s
method returns the object id corresponding to the current instance, that's the default thing used when using a method like puts on an object. To replace a model's display name, you have to override this method and it will work anywhere in your app when you use puts @car
or in your templates doing <%= @car %>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With