我是RoR的新手。使用validates_uniqueness_of時我遇到了一個問題。我有一個表3列:Rails 3 validates_uniqueness_of以意想不到的方式工作
name || father_name || dob
Vimal Raj || Selvam || 1985-08-30
我在我的模型已經一個這樣的代碼:
class Candidate < ActiveRecord::Base
attr_accessible :dob, :father_name, :name
validates_uniqueness_of :name, scope: [:father_name, :dob], case_sensitive: false,
message: ": %{value} already present in the database!!!"
before_save :capitalize_name, :capitalize_father_name
private
def capitalize_name
self.name.capitalize!
end
def capitalize_father_name
self.father_name.capitalize!
end
end
當我插入=>「VIMAL拉吉,Selvam預期它會拋出錯誤, 「1985-08-30」 但它正在接受以下數據=>「Vimal Raj,selvam,1985-08-30」。我期待它會拋出一個錯誤,但意外的是它接受記錄並作爲新記錄插入到數據庫中。
請幫我解決這個問題。
無論如何,範圍似乎區分大小寫 - 不區分大小寫似乎隻影響':name'的唯一性問題,而不影響範圍。我不確定我會打電話給那些令人驚訝的事情,但是有辦法做到這一點很好。 –
請先編輯你的問題,上面寫過你的表中有字段名,first_name和dob,而不是father_name。 –
我很抱歉Rails Guy。我編輯了我的問題。 –