2014-12-05 92 views
0

我需要創建一個下拉字段(membership_code),其值包含在名爲members的不同表中。使用Rails中的表屬性創建下拉菜單Active Admin

架構

prereg
ID
membership_code(字符串)不是外鍵
VERIFICATION_CODE

成員
ID
membership_code

Prereg主動管理型

ActiveAdmin.register Prereg do 
    form do |f| 
    f.inputs "Preregistered Users" do 
     f.input :verification_code 
     f.input :email 

     #THIS LINE NEEDS TO BE CHANGED TO LIST DOWN THE MEMBERSHIP_CODE FROM MEMBERS 
     # f.input :membership_code, :as => :select, :collection => Members.all() 
    end 
    f.actions 
    end 

要添加,我打算有這個邏輯,其中每當您創建預註冊記錄時,所選的「membership_code」將從members.membership_code列表中刪除。

這是如何在ActiveAdmin中完成的?對不起,我還沒有找到DB Hooks的好資源,我還是Rails的新手。

回答

0

我認爲你正在尋找的東西如下:

f.input :membership_code, as: :select, collection: Member.all.map(&:membership_code) 
+1

嗨@andrey這真的有效!但我遇到了另一個問題。由於會員收藏有很多記錄(200,000)。我意識到實施下拉選項是錯誤的。我正在考慮使用自動填充的輸入字段。 – olleh 2014-12-08 03:47:50

0

試試這個

f.input :membership_code, :as => :select, :collection => Members.select(:membership_code) 

感謝

+0

請解釋什麼,以及你如何做這個,所以OP可以借鑑它... – RichardBernards 2014-12-05 08:23:05

+0

@mehul它不工作。 – olleh 2014-12-05 14:56:08