如何在种子数据中创建相同的记录X次?

use*_*630 2 ruby ruby-on-rails ruby-on-rails-4

我是Rails(4.0.0)和Ruby(2.0.0)的新手,想知道如何给每个用户提供十次相同的书.首先,我创建了三个用户:

user1 = User.create(name: "Fred")
user2 = User.create(name: "Bob")
user3 = User.create(name: "Ron")
Run Code Online (Sandbox Code Playgroud)

现在我想给所有三个用户一本十本书来测试我的应用程序.所以我从这样开始:

book = Book.create(title: "My Book")
Run Code Online (Sandbox Code Playgroud)

在我迷失了如何做each和分配用户之后.你知道怎么?在这种情况下,质量分配安全无关紧要,只需要数据进行视图测试.

Mik*_*kin 7

User.all.find_each do |user|
  10.times { |i| user.books << Book.create!(title: "Book number #{i}") }
end
Run Code Online (Sandbox Code Playgroud)


Dam*_*IEU 5

这将查看所有用户,然后为每个用户循环10次,每次创建一本书(因此创建10本书).

[user1, user2, user3].each do |user|
  10.times do |i|
    Book.create!(title: "Book ##{i}")
  end
end
Run Code Online (Sandbox Code Playgroud)