Ruby on rails Rails times.do分配给实例变量
正确的方法是什么:Ruby on rails Rails times.do分配给实例变量,ruby-on-rails,ruby,Ruby On Rails,Ruby,正确的方法是什么: @items = 10.times.do Item.create(name: Faker::Name) end 创建10个随机项目并将其分配给实例变量?如果您想要项目对象的数组,请尝试此操作 @items = [] 10.times do @items << Item.create(name: Faker::Name) end 希望有帮助 如果您想要项目对象的数组,请尝试以下操作 @items = [] 10.times do @it
@items = 10.times.do
Item.create(name: Faker::Name)
end
创建10个随机项目并将其分配给实例变量?如果您想要
项目对象的数组,请尝试此操作
@items = []
10.times do
@items << Item.create(name: Faker::Name)
end
希望有帮助 如果您想要项目对象的数组,请尝试以下操作
@items = []
10.times do
@items << Item.create(name: Faker::Name)
end
希望有帮助 除了上面的答案,您还可以使用#with_object
@items = 10.times.with_object([]) do |_, res|
res << Item.create(name: Faker::Name)
end
多亏了@maxpleaner,还有一个解决方案:
@items = 10.times.map { Item.create(name: Faker::Name) }
多亏了@engineersmnky,还有一些解决方案:
@items = Item.create(10.times.map { {name: Faker::Name}})
除了上面的答案之外,您还可以使用#with_object
@items = 10.times.with_object([]) do |_, res|
res << Item.create(name: Faker::Name)
end
多亏了@maxpleaner,还有一个解决方案:
@items = 10.times.map { Item.create(name: Faker::Name) }
多亏了@engineersmnky,还有一些解决方案:
@items = Item.create(10.times.map { {name: Faker::Name}})
10.times.map
也可以使用,它更接近于使用map的@maxpleaner解决方案。谢谢还有Item.create(10.times.map{{{name:Faker::name}}})
和rails 6中的Item.find(Item.insert_all(10.times.map{{name:Faker::name}}).rows.flatte)
一次插入所有行,然后检索所有行10.times.map
也可以使用,并且更接近于使用map的@maxpleaner解决方案。谢谢还有Item.create(10.times.map{{{name:Faker::name}}})
和rails 6中的Item.find(Item.insert_all(10.times.map{{{name:Faker::name}}).rows.flatte)
一次全部插入,然后全部检索