我正在使用populate.rake:
使用测试数据填充数据库Repertoire.includes(:jokes).each do |r|
@jokes = r.jokes
Skit.populate 8..12 do |skit|
skit.joke_id = @jokes[rand(@jokes.count)].id
end
end
这给了我一个RuntimeError:被调用的id为nil。
如何使用随机笑话填充小品?
答案 0 :(得分:3)
sort_by {rand}
应该对你的笑话进行排序。
或者,您的“保留曲目”查询中还会执行.order("rand()/random()")
(取决于您的数据库)并对查询设置限制。
答案 1 :(得分:0)
不确定这是否能解决您的问题,但Ruby对数组有rand
方法,因此您应该可以调用@jokes.rand.id
。似乎这会简化事情,甚至可能修复你的错误。