草庐IT

唯一标识

全部标签

ruby - 如何展平散列,使每个键成为唯一值?

我想使用嵌套散列和数组进行散列,并将其展平为具有唯一值的单个散列。我一直试图从不同的角度来解决这个问题,但后来我让它变得比需要的复杂得多,让自己迷失在正在发生的事情中。示例源哈希:{"Name"=>"KimKones","LicenseNumber"=>"54321","Details"=>{"Name"=>"Kones,Kim","Licenses"=>[{"LicenseType"=>"PT","LicenseNumber"=>"54321"},{"LicenseType"=>"Temp","LicenseNumber"=>"T123"},{"LicenseType"=>"AP",

ruby-on-rails - 我将如何在 Ruby 中生成一个随机且唯一的字符串?

在我正在开发的RubyonRails应用程序中,我允许用户上传文件并希望为这些文件指定一个简短的随机字母数字名称。(例如“g7jf8”或“3bp76”)。执行此操作的最佳方法是什么?我想从原始文件名和时间戳生成哈希/加密字符串。然后查询数据库以仔细检查它不存在。如果是,则生成另一个并重复。我看到这种方法的问题是,如果重复字符串的可能性很高,它可能会增加相当多的数据库负载。 最佳答案 我用这个:)defgenerate_token(column,length=64)beginself[column]=SecureRandom.urls

ruby-on-rails - 我怎样才能用工厂女孩创建唯一的字符串(没有数字)?

或者是否需要外部gem来生成随机且唯一的用户名?这是我现在的工厂:factory:user_4dosequence(:id){|n|n}sequence(:first_name){|n|"Gemini"+n.to_s}sequence(:last_name){|n|"Pollux"+n.to_s}sequence(:profile_name){|n|"GeminiPollux"+n.to_s}sequence(:email){|n|"geminipollus"+n.to_s+"@hotmail.co.uk"}end使用序列方法适用于id、profile_name和电子邮件,但我的REG

ruby-on-rails - 如何在 Rails 中生成唯一的请求 ID?

我的记录器需要一个唯一的请求ID,以便我可以跟踪日志文件中的每个请求。到目前为止我得到了这个REQUEST_ID=Digest::MD5.hexdigest(Time.now.to_f.to_s+$PID.to_s)问题是我不知道把它放在哪里。我尝试将它放在类外的自定义记录器文件中。但它必须被缓存或什么的,因为我总是得到相同的散列。有什么想法吗?注意。我正在使用Rails3和独立的Passenger更新:Rails3.2:uuid标签将不起作用。看看日志的格式有多糟糕:[0909413851b79676cb06e0842d21c466][127.0.0.1]StartedHEAD"/"

ruby-on-rails - 在我唯一的(1-3 小时) session 期间,我应该问以前的开发团队什么?

有RubyonRails(1.8,2.3.2)项目。项目的第一个版本是由某个组织制作的。我将在没有该组织任何帮助的情况下实现该项目的下一个版本。我将能够在session期间(1-3小时)与之前开发团队的开发人员交谈。项目统计:~10kLOC,1.0/0.6代码测试比,rspec关于项目,您可以推荐问哪些问题? 最佳答案 首先回顾整个项目并尽可能多地弄清楚,这样您就可以了解上下文并真正理解他们告诉您的内容。问如果你能把谈话录下来架构概览为什么他们做出某些架构决策而不是另一个架构决策完整的依赖项列表(如果您无法自行解决)最大的问题是什么

ruby - 在 Ruby 中将唯一的种子字符串转换为随机但确定的浮点值

我在概念上遇到了困难。基本上,我需要接受一些任意的唯一字符串,并能够将其转换为规范化的浮点值。输出浮点值是什么并不重要,只要相同的字符串输入总是产生相同的规范化浮点输出即可。所以这是一个哈希算法,对吗?我熟悉SHA1或MD5,这似乎类似于密码散列,正确密码的结果相同。但是我相信那些方法会输出字符串。我没有得到的是如何将SHA1或MD5的结果转换为一致的浮点值。#Goaldefstring_to_float(seed_string)#...endstring_to_float('abc-123')#=>0.15789string_to_float('abc-123')#=>0.15789

ruby - 'eval' 是与 Ruby 中的绑定(bind)对象交互的唯一方式吗?

我是Ruby的新手,到目前为止,弄清楚如何使用"binding"objects是我最大的痛点之一。如果我没有正确阅读文档,它们几乎是完全不透明的。要访问绑定(bind)对象内的范围,您必须有一串Ruby代码和eval它使用绑定(bind)。也许我只是来自不同学校的纯粹主义者,但一般来说,我对基于字符串的“eval”结构过敏。在一般情况下,给定一个绑定(bind)对象,有什么方法可以安全地执行以下任何操作:在绑定(bind)表示的上下文中列出范围内的标识符,或检索内容的哈希值。将绑定(bind)中局部变量的值设置为等于外部上下文中某个局部变量的值。理想情况下,这应该可以正常工作,即使值是

ruby - 在 Ruby 中,哈希中标识符后的冒号是什么意思?

我正在学习FactoryGirl,我看到了这段代码:factory:postdoassociation:author,factory::user,last_name:"Writely"end为什么factory和last_name末尾有一个冒号? 最佳答案 此上下文中的冒号表示文字哈希。factory是Hash键,:user是值。替代语法是:factory=>:user。他们的意思是一样的。 关于ruby-在Ruby中,哈希中标识符后的冒号是什么意思?,我们在StackOverflow上

ruby-on-rails - 使用 Rails 即时生成唯一 token

我想在我的Controller中为“user_info_token”列中的用户生成一个token。但是,我想检查当前是否没有用户拥有该token。此代码是否足够?begin@new_token=SecureRandom.urlsafe_base64user=User.find_by_user_info_token(@new_token)endwhileuser!=nil@seller.user_info_token=@new_token或者有更简洁的方法来做到这一点吗? 最佳答案 如果您的token足够长并且由加密安全的[伪]随机数

ruby-on-rails - CarrierWave:为所有版本化文件创建相同、唯一的文件名

在详细介绍之前,我先开门见山:有没有人想出一种方法让Carrierwave将文件的名称保存为时间戳或每个文件唯一的任意字符串?默认情况下,Carrierwave将每个文件及其替代版本保存在自己的目录中(以型号ID号命名)。我不喜欢这个,因为不是一个目录有1,000个,为了使用大的整数,文件(在我的例子中是图片),我们得到一个目录有1,000个子目录,每个子目录有一个或两个文件。呸。现在,当您将uploader的store_dir方法重写为如下内容时:defstore_dir"uploads/#{model.class.to_s.underscore}/#{mounted_as}"end