Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 是否验证生成随机令牌的工作的唯一性?_Ruby On Rails - Fatal编程技术网

Ruby on rails 是否验证生成随机令牌的工作的唯一性?

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

如果我想为rails中的令牌生成一个随机字符串,我可以在其上使用validates\u university\u吗?考虑到这不是用户将输入或返回错误的内容,因为它需要立即是唯一的。还是我太傻了?

验证的唯一性只会确保属性是唯一的-它不会生成值

我会在验证前使用创建唯一值。

如何:

 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标记