2012-08-16 16 views
5

Tôi có những hiệp hội:ActiveAdmin tùy biến các hình thức cho 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 

Bây giờ, tôi muốn tùy chỉnh hình thức ActiveAdmin cho "đăng ký", do đó nó cho thấy tiêu đề của khóa học và tên của người sử dụng như là một lựa chọn và không phải là một textfield.

Biểu mẫu mặc định đã làm điều đó, tuy nhiên tôi cần tùy chỉnh biểu mẫu thêm và tôi không thể tạo lại biểu mẫu mặc định.

Trả lời

6

khối Biểu mẫu của bạn sẽ giống như thế này trong thư mục admin/signups.rb:

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

Theo mặc định, vì courseuser là các hiệp hội, điều này sẽ cung cấp cho bạn một collection_select - có nghĩa là, một với name thuộc tính của bạn mô hình dưới dạng nhãn, id s làm giá trị. Nếu bạn đã vượt qua loại đầu vào input của mình, điều này sẽ buộc chúng hiển thị dưới dạng loại đó.

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

này sẽ chỉ cho bạn một lĩnh vực đầu vào course_id văn bản, nơi bạn sẽ có lẽ chỉ cần nhập ID cho các đối tượng có liên quan. Để "tạo lại biểu mẫu mặc định", chỉ cần tiếp tục thêm input giây cho các thuộc tính có liên quan. Bạn thậm chí có thể quấn chúng trong f.inputs để nhóm chúng lại và làm cho mọi thứ trông đẹp.

form do |f| 
    f.inputs "Basic Details" do 
     f.input :course 
     f.input :user 
    end 
end 
Các vấn đề liên quan