2012-04-14 11 views
6

Używam klejnotu Active Admin dla Ruby on Rails. Mam moduły Team i Coach, które mają relację has_many and belongs_to.Formularze ActiveAdmin (nowe/edytuj) association_to association?

class Team < ActiveRecord::Base 
    belongs_to :coach 
end 

class Coach < ActiveRecord::Base 
    has_many :teams 
end 

zorientowali się, jak wyświetlić imię i nazwisko na indeks i pokazać stronie (zrobiłem to tak :)

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

co chcę, jak wyświetlić imię i nazwisko trenera w formularzu drużyny (nowa i edycja) w rozwijanym menu? Proszę, pomóż mi z tym.

Odpowiedz

7

możesz spróbować tej

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

miałem ten sam problem. Strona Edit pokazuje instancje obiektów w menu wyboru takiego jak

#<Coach:0x00eff180c85c8> 

Aby go rozwiązać, a dostęp do każdej instancji pola używają tego

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 wykorzystuje Formtastic i jego documentation ma więcej przykładów.

Ten stackoverflow answer pomógł mi uzyskać to rozwiązanie.

3

Spróbuj tego:

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