2009-05-15 14 views
0

レールにトークンのランダムな文字列を生成したいのであれば、それにvalidates_uniqueness_ofを使用できますか?これはユーザーが入力したものではなく、すぐにユニークである必要があるためにエラーを返すものではないことを考えてください。それとも、私はばかなだけですか?ランダムトークンを生成するためのvalidates_uniqueness_of作業はありますか?

答えて

2

についてどのように:

class Token < ActiveRecord::Base 
    validates_uniqueness_of :random_key 

    before_validation_on_create :create_key_until_valid 

    def create_key_until_valid 
    self.random_key = rand.to_s.slice(2,10)          
    while Token.find_by_random_key(self.random_key) 
     self.random_key = rand.to_s.slice(2,10) 
    end 
    end 
end 

+0

はその行くを与える可能性があります。ありがとう – Cameron

0

validates_uniqueness_ofは属性が一意であることを確認するだけで、値を生成しません。

私はbefore_validationを使用して一意の値を作成します。

関連する問題