我是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
并分配用户。你知道怎么?在这种情况下,质量分配安全无关紧要,只需要数据进行视图测试。
答案 0 :(得分:7)
User.all.find_each do |user|
10.times { |i| user.books << Book.create!(title: "Book number #{i}") }
end
答案 1 :(得分:5)
这将查看所有用户,然后为每个用户循环10次,每次创建一本书(因此创建10本书)。
[user1, user2, user3].each do |user|
10.times do |i|
Book.create!(title: "Book ##{i}")
end
end
答案 2 :(得分:3)
如果要跳过mass_assignment保护
,请使用without_protection
[user1, user2, user3].each do |user|
10.times do |i|
Book.create!({title: "Book ##{i}"}, :without_protection => true)
end
end