2012-08-16 11 views
5

mam te skojarzenia:ActiveAdmin dostosowywania formularza belongs_to

class Course < ActiveRecord::Base 
    has_many :signup 
    has_many :user, :through => :signup 

    accepts_nested_attributes_for :signup 
end 

class User < ActiveRecord::Base 
    has_many :signup 
    has_many :course, :through => :signup 

    accepts_nested_attributes_for :signup 
end 

class Signup < ActiveRecord::Base 
    belongs_to :course 
    belongs_to :user 
end 

Teraz chciałbym, aby dostosować formę ActiveAdmin dla „Zapis”, więc to pokazuje tytuł kursów i nazwy użytkowników jako wybierz, a nie jako pole tekstowe.

Domyślna forma już to robi, jednak muszę dostosować formularz dalej i nie mogę odtworzyć domyślnego formularza.

Odpowiedz

6

Twój blok forma będzie wyglądać podobnie jak ten w swojej admin/signups.rb:

form do |f| 
    f.input :course 
    t.input :user 
end 

Domyślnie od course i user to stowarzyszenia, powinno to dać collection_select - to jest z atrybutem name swoje modele jako etykiety, wartości jako id. Jeśli przekazałeś swój typ wejściowy, zmusi to je do wyświetlania jako tego typu.

form do |f| 
    f.input :course, :as => :string 
end 

To będzie po prostu daje pole wprowadzania tekstu, course_id gdzie prawdopodobnie będziesz Wystarczy wpisać identyfikator skojarzonego obiektu. Aby "odtworzyć domyślny formularz", po prostu kontynuuj dodawanie input s dla odpowiednich atrybutów. Możesz je nawet opakować w f.inputs, aby je pogrupować i sprawić, że wszystko będzie wyglądać ładnie.

form do |f| 
    f.inputs "Basic Details" do 
     f.input :course 
     f.input :user 
    end 
end 
Powiązane problemy