2011-09-14 41 views
0

我目前有一個網站,它可以讓每個用戶註冊,但我想給出代碼,以便只有具有特殊代碼的用戶才能註冊。我已經與驗證工作,但我真的需要你的幫助做到這一點。Rails 3針對DB條目的自定義驗證

起初,我有我的表單讓用戶註冊,用戶可以在其中輸入代碼。 後來我有用戶模型,它應該擁有這個驗證檢查:

validates :registration_codes, :presence => true, ??? => ??? 

我可以讓我reg_codes以任何形式,因爲我還沒有創建他們沒有。也許我會更新他們手動和硬編碼,或者我會做一個模型。我不知道。所以,我只需要的是驗證檢查應該做這樣的事情:

:registration_code should be code1 or code2 or code3 

我甚至試圖使一個自定義的方法,但我沒有找到如何表單輸入轉發到我的方法。

感謝您的幫助!

回答

0

我寫了一個自定義的方法,這是我的呼籲:

validate :validate_regcode 

然後,我只是在DB搜索代碼,並檢查結果爲空:

def validate_regcode 
    regcode_feed = Code.where("regcode = ?", regcode) 
    if regcode_feed.empty? 
    errors.add(:regcode, "Ihr Registrierungscode ist leider ungültig.") 
    end 
end 

所以,如果你知道如何做到這一點,那真的很簡單。也許有更簡單的東西,但我喜歡我的方式:)