大佬教程收集整理的这篇文章主要介绍了在ruby / ActiveRecord中生成Instagram或Youtube类似的无法确定的字符串ID,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
做这个的最好方法是什么?直到create a random string才是最简单的,直到它独特吗?有没有办法以整数的方式进行hash / shuffle,使得用户不能通过改变一个字符来篡改URL(就像我之前用404的“Instagram”链接一样),最后是一个新的记录?
random_attribute.rb
@H_690_10@module RandomAttribute def generate_unique_random_base64(attribute,n) until random_is_unique?(attributE) self.send(:"#{attributE}=",random_base64(n)) end end def generate_unique_random_hex(attribute,SecureRandom.hex(n/2)) end end private def random_is_unique?(attributE) val = self.send(:"#{attributE}") val && !self.class.send(:"find_by_#{attributE}",val) end def random_base64(n) val = base64_url val += base64_url while val.length < n val.slice(0..(n-1)) end def base64_url SecureRandom.base64(60).downcase.gsub(/\W/,'') end end Rawuser.rb
class Post < ActiveRecord::Base include RandomAttribute before_validation :generate_key,on: :create private def generate_key generate_unique_random_hex(:key,32) end end
以上是大佬教程为你收集整理的在ruby / ActiveRecord中生成Instagram或Youtube类似的无法确定的字符串ID全部内容,希望文章能够帮你解决在ruby / ActiveRecord中生成Instagram或Youtube类似的无法确定的字符串ID所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。