2012-03-05 55 views
0

我對名爲'user_name'且範圍爲'customer_id'和'active'的列使用client_side_validation唯一性。我只是想拋出一個錯誤,如果用戶名已經存在於表中,只有當客戶ID是存在的和活動列是真實的,並允許用戶名稱,如果活動列是假的請有人幫助我。rails客戶端驗證mysql數據庫中布爾值的唯一性

回答

0

也許這將幫助:

class User < ActiveRecord::Base 

    scope :with_customer_id_and_active, where("customer_id IS NOT NULL AND active = 1") 

    validates :check_uniq_only_with_customer_id_and_active 

    def check_uniq_only_with_customer_id_and_active 

    if with_customer_id_and_active.where(:user_name => name).count > 0 
     errors.add(:user_name, "user name should be uniq for active users") 
    end 

    end 

end 
+0

感謝您的答覆先生,但我使用客戶端驗證的寶石不執行任何功能,只需要在驗證器類,如存在,唯一性的特定屬性。我懷疑,在實時驗證過程中,mysql數據庫布爾值「0」或「1」是否正確檢查爲「true」或「false」 – nishanthan 2012-03-06 07:56:10