0
我對名爲'user_name'且範圍爲'customer_id'和'active'的列使用client_side_validation唯一性。我只是想拋出一個錯誤,如果用戶名已經存在於表中,只有當客戶ID是存在的和活動列是真實的,並允許用戶名稱,如果活動列是假的請有人幫助我。rails客戶端驗證mysql數據庫中布爾值的唯一性
我對名爲'user_name'且範圍爲'customer_id'和'active'的列使用client_side_validation唯一性。我只是想拋出一個錯誤,如果用戶名已經存在於表中,只有當客戶ID是存在的和活動列是真實的,並允許用戶名稱,如果活動列是假的請有人幫助我。rails客戶端驗證mysql數據庫中布爾值的唯一性
也許這將幫助:
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
感謝您的答覆先生,但我使用客戶端驗證的寶石不執行任何功能,只需要在驗證器類,如存在,唯一性的特定屬性。我懷疑,在實時驗證過程中,mysql數據庫布爾值「0」或「1」是否正確檢查爲「true」或「false」 – nishanthan 2012-03-06 07:56:10