我正在處理的Rails 3.1應用程序中的一個模型具有「代碼」屬性,該屬性在創建記錄時自動生成並且必須是唯一的。應用程序應檢查數據庫以查看生成的代碼是否存在,如果存在,則應生成新代碼並重復該過程。確保應用程序級別的唯一列值
我可以通過add_index :credits, :code, :unique => true
(我正在做的)以及validates_uniqueness_of
的模型確保數據庫級別的字段唯一性,但如果生成的代碼存在,這兩種方法都會返回錯誤。我需要在重複的情況下再試一次。生成的代碼足夠長,重複是不太可能的,但我需要100%確定。
此代碼生成對最終用戶透明地處理,所以他們不應該看到錯誤。一旦生成代碼,檢查它是否存在並重復該過程直到找到唯一值的最好方法是什麼?
啊,是的,直到。這應該做得很好,謝謝。創作率每兩週更接近一個,所以我不希望這裏發生任何碰撞。 – Kenn