2

我是 Rails (4.0.0) 和 Ruby (2.0.0) 的新手,想知道如何给每个用户同一本书十次。所以首先,我创建了我的三个用户:

user1 = User.create(name: "Fred")
user2 = User.create(name: "Bob")
user3 = User.create(name: "Ron")

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

book = Book.create(title: "My Book")

在我迷失了如何做each和分配用户之后。你知道怎么?批量分配安全在这种情况下无关紧要,只需要查看测试的数据。

4

3 回答 3

7
User.all.find_each do |user|
  10.times { |i| user.books << Book.create!(title: "Book number #{i}") }
end
于 2013-09-30T16:01:55.570 回答
5

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

[user1, user2, user3].each do |user|
  10.times do |i|
    Book.create!(title: "Book ##{i}")
  end
end
于 2013-09-30T15:56:47.203 回答
3

without_protection如果您想跳过 mass_assignment 保护,请使用

[user1, user2, user3].each do |user|
  10.times do |i|
    Book.create!({title: "Book ##{i}"}, :without_protection => true)
  end
end
于 2013-09-30T16:02:10.853 回答