0

假设我为测试目的创建了一个数据库,有没有办法可以将数据播种到列中,其中数字不同,例如在我的种子任务中:

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

数字是随机的还是从 1 到 10 的增量都没有关系,只要它是不可重复的。有没有可以做到这一点的宝石?

4

2 回答 2

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
于 2013-09-27T15:37:54.017 回答
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)
于 2013-09-27T15:44:07.550 回答