我正在使用此代码让用户输入名称,而程序将它们存储在一个数组中,直到它们输入一个空字符串(他们必须在每个名称后按Enter键):
people = []
info = 'a' # must fill variable with something, otherwise loop won't execute
while not info.empty?
info = gets.chomp
people += [Person.new(info)] if not info.empty?
end
Run Code Online (Sandbox Code Playgroud)
这个代码在do ... while循环中看起来更好看:
people = []
do
info = gets.chomp
people += [Person.new(info)] if not info.empty?
while not info.empty?
Run Code Online (Sandbox Code Playgroud)
在这段代码中,我不必将信息分配给一些随机字符串.
不幸的是,Ruby中似乎不存在这种类型的循环.任何人都可以建议一个更好的方法吗?
我有Guids很容易解决的问题.
特别是,对于密码重置工作流程,我想将Guid令牌发送到用户的电子邮件,并让他们使用令牌重置密码.由于guids是唯一的,这是非常安全的,并且节省了我通过电子邮件发送人员密码,这是有风险的.
我注意到Ruby 有一个Guid宝石 ; 但它看起来很旧,它把东西写入文件系统.
有谁知道可以创建全球唯一标识符的任何其他宝石?
我知道我可以回到:
(0..16).to_a.map{|a| rand(16).to_s(16)}.join
Run Code Online (Sandbox Code Playgroud)
但它看起来并不像是一个合适的GUID ......
我使用Rails 3.0.20和ruby 1.8.7(2011-06-30 patchlevel 352)
请建议我生成guid的最佳插件.
我的Rails应用程序需要为用户生成电子优惠券.每张优惠券都应该有一个独特的优惠券代码,可以在我们的系统上兑换.
例如,免费墨西哥卷饼的优惠券.User A收到免费墨西哥卷饼User B的优惠券,然后收到免费墨西哥卷饼的优惠券.2张优惠券应该有唯一的优惠券代码.
生成像这样不易伪造的代码的最佳方法是什么?我不希望用户输入随机数和兑换其他人优惠券的成功率很高.
我想这就像背面有一个唯一编号的礼品卡就是我要找的东西.
我有一个Ruby on Rails应用程序,您可以在其中创建"帖子".我开始使用脚手架生成器来生成标题,这是一个字符串,而主体是内容.
每个'post'都有一个id的url,例如/ 1,/ 2,/ 3等.
有没有办法将其更改为一串随机字符,例如/ 49sl,/ l9sl等?
这就是我所拥有的 posts_controller.rb
class PostsController < ApplicationController
# GET /posts
# GET /posts.json
def index
@posts = Post.all
respond_to do |format|
format.html # index.html.erb
format.json { render json: @posts }
end
end
# GET /posts/1
# GET /posts/1.json
def show
@post = Post.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.json { render json: @post }
end
end
# GET /posts/new
# GET /posts/new.json
def new
@post = Post.new
respond_to do …Run Code Online (Sandbox Code Playgroud)