Ruby on rails 是否验证生成随机令牌的工作的唯一性?
如果我想为rails中的令牌生成一个随机字符串,我可以在其上使用validates\u university\u吗?考虑到这不是用户将输入或返回错误的内容,因为它需要立即是唯一的。还是我太傻了?验证的唯一性只会确保属性是唯一的-它不会生成值 我会在验证前使用创建唯一值。如何:Ruby on rails 是否验证生成随机令牌的工作的唯一性?,ruby-on-rails,Ruby On Rails,如果我想为rails中的令牌生成一个随机字符串,我可以在其上使用validates\u university\u吗?考虑到这不是用户将输入或返回错误的内容,因为它需要立即是唯一的。还是我太傻了?验证的唯一性只会确保属性是唯一的-它不会生成值 我会在验证前使用创建唯一值。如何: class Token < ActiveRecord::Base validates_uniqueness_of :random_key before_validation_on_create :cr
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
class标记