Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.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 如何防止Rails再次选择相同的随机名称?_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 如何防止Rails再次选择相同的随机名称?

Ruby on rails 如何防止Rails再次选择相同的随机名称?,ruby-on-rails,ruby,Ruby On Rails,Ruby,在我的Rails 4应用程序中,我有一个控制器动作,它生成了许多示例项目,因此用户可以使用它: class ProjectsController < ApplicationController def generate_samples 100.times do p = current_user.projects.build( :name => random_name, :hourly_rate => r

在我的Rails 4应用程序中,我有一个控制器动作,它生成了许多示例
项目
,因此
用户
可以使用它:

class ProjectsController < ApplicationController

  def generate_samples
    100.times do
      p = current_user.projects.build(
        :name         => random_name,
        :hourly_rate  => random_hourly_rate
      p.save!
    end
    flash[:success] = "Sample projects created."
  end

end
class ProjectsControllerrandom\u name,
:小时费率=>随机小时费率
p、 救命!
结束
flash[:success]=“已创建示例项目。”
结束
结束

由于my
Project
模型只接受具有唯一名称的新记录,因此如果在一个函数调用中两次拾取相同的
random\u name
,则上述函数将中断。如何防止这种情况发生?

请您的函数检查拾取的名称是否已经存在,然后重复,或者使用类似于UUID的方法,将ris两次拾取相同id的k几乎为0:

name: SecureRandom.uuid

在保存到数据库之前,将它们附加到数组中,检查名称是否已在数组中,如果为true,则获取新名称等等。您从何处获取随机名称?让方法
random\u name
按其说明执行。您没有提供此方法,因此不知道它是如何工作的。但它显然无法提供随机名称。它的名称可能不正确,也可能不正确不太好用。:)要想知道真名,请看伪造的宝石