2012-08-16 79 views
5

我有這些協會的形式:ActiveAdmin定製的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 

現在,我想自定義爲「註冊」的ActiveAdmin形式,所以它顯示了課程的標題和用戶名作爲選擇而不是文本框。

默認窗體已經這樣做了,但是我需要進一步自定義窗體,我無法重現默認窗體。

回答

6

您的形式塊將看起來像這樣在你的admin/signups.rb

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

默認情況下,因爲courseuser有關聯,這應該給你一個collection_select - 即用的name屬性您模型作爲標籤,id s作爲值。如果你已經通過你的input輸入類型,這將強制它們顯示爲該類型。

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

這將只是給你一個course_id文本輸入框,在這裏你可能只需要輸入ID爲關聯對象。要「重現默認形式」,只需繼續爲相關屬性添加input即可。你甚至可以將它們包裝在f.inputs中,以將它們分組並使事物看起來很漂亮。

form do |f| 
    f.inputs "Basic Details" do 
     f.input :course 
     f.input :user 
    end 
end 
相關問題