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

时间:2014-08-23 14:03:24

标签: ruby-on-rails ruby

在我的Rails 4应用程序中,我有这个控制器操作,可以生成一些样本projects,以便user可以使用它:

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

由于我的Project模型只接受具有唯一名称的新记录,因此如果在一个函数调用中两次选择相同的random_name,则上述函数会中断。如何防止这种情况?

1 个答案:

答案 0 :(得分:-1)

要么你的功能检查选择的名字是否已经存在,并重复,或使用类似UUID的东西,其中两次相同id的风险几乎为0:

name: SecureRandom.uuid