我有一個基本的Rails模型有兩個屬性,名稱和代碼。我有validates_uniqueness_of爲代碼屬性。但是,我想定製:消息以顯示重複的名稱。有什麼方法可以訪問這個重複項目嗎?Rails - validates_uniqueness_of:訪問重復的項目?
例如,假設我首先輸入一個名爲的記錄,已過期,代碼爲EXP。然後我輸入經驗與代碼EXP。我希望:消息能夠說出類似「代碼已被過期使用」的內容。
> m1 = Model.new(:name => 'Expired', :code => 'EXP')
> m2 = Model.new(:name => 'Experience', :code => 'EXP')
> m1.save!
> m2.save!
validates_uniqueness_of :code,
:message => "Code already taken by #{duplicate.name}"
是否有任何內置的Rails構造持有重複的對象,以便我可以像訪問它那樣訪問它:message?或者有沒有其他的方式可以運行代碼來確定這個驗證被觸發時的重複?
太好了!奇蹟般有效!不知道爲什麼我從來不知道爲什麼我無法找到它。非常感謝! – istrasci 2010-07-01 20:23:22
不客氣:] – 2010-07-01 20:31:33
我想補充一點,我們需要添加邏輯來確保_self.id_與_model.id_不一樣。否則,我們將永遠無法更新現有項目(除非這是您想要的行爲)。 – istrasci 2010-07-26 17:31:36