2012-04-14 4 views
6

Io uso Active Admin gem per Ruby on Rails. Ho moduli Team e Coach, che hanno una relazione has_many e belongs_to.I moduli ActiveAdmin (nuovo/modifica) appartengono all'associazione?

class Team < ActiveRecord::Base 
    belongs_to :coach 
end 

class Coach < ActiveRecord::Base 
    has_many :teams 
end 

ho capito come visualizzare nome e cognome sulla pagina indice e spettacolo (ho fatto in quel modo :)

index do 
    column :name 
    column "Coach" do |team| 
     team.coach.firstname + " " + team.coach.lastname 
    end 
    default_actions 
    end 

quello che voglio è come visualizzare nome e cognome di allenatore in forma di squadra (nuova e modifica pagina) nel menu a tendina? Per favore aiutatemi con questo.

risposta

7

Puoi provare questo

f.input :coach_name, :as => :select, :collection => Coach.all.map {|u| [u.firstname, u.id]}, :include_blank => false 
3

ho avuto lo stesso problema. Gli spettacoli di modifica oggetto pagina istanze nel menu di selezione, come,

#<Coach:0x00eff180c85c8> 

per risolverlo e accedere ai campi di ogni istanza usano questo,

form do |f| 
    f.inputs "Coaches" do 
    f.input :name 
    f.input :coach, member_label: Proc.new { |c| "#{c.firstname} #{c.lastname}" 
    end 
    f.actions 
end 

ActiveAdmin usa Formtastic e la sua documentation ha altri esempi.

Questo stackoverflow answer mi ha aiutato a ottenere questa soluzione.

3

Prova questo:

f.input :coach_name, :as => :select, :collection => Coach.all.map {|u| [u.firstname.to_s, u.id]}