数据库中不可重复的数字 - Ruby on Rails

时间:2013-09-27 15:32:09

标签: ruby-on-rails ruby database random generator

假设我有一个为测试目的而创建的数据库,是否有一种方法可以将数据插入到列中,其中数字不同,例如在我的种子任务中:

10.times do
Post.create!(
  Start_Date: '' 
  End_Date: ''
  Number: "Random number from 1 to 10"
  )
end

如果数字是随机数或1-10的增量,只要它不可重复就没关系。那里有宝石可以做到吗?

2 个答案:

答案 0 :(得分:0)

只要您只使用序列1..10即可,您可以使用此代码

10.times do |i|
  Post.create!(
    Start_Date: '' 
    End_Date: ''
    Number: i + 1
  )
end

如果您需要随机数字:

(1..10).to_a.shuffle.each do |i|
  Post.create!(
    Start_Date: '' 
    End_Date: ''
    Number: i
  )
end

答案 1 :(得分:0)

给出1-10范围内的随机数

  10.times do
    Post.create!(
      Start_Date: '' 
      End_Date: ''
      Number: rand(1..10)
      )
  end

进行批量创建,以便只发出一个查询来创建它们。

posts = []
10.times do
  posts << {Start_date: '', End_Date: '', Number: rand(1..10)}
end

Post.create(posts)