0

在我的种子.rb

  puts 'DEFAULT Categories'
  categories = Category.create([{name:'cat1'},{name:'cat2'}, {name: 'cat3'} ])
  if categories.save
    puts "categories saved"
  else
    puts "categories save failed"
  end

我使用它来设置默认类别,但问题是我无法if categories.save查看是否所有类别项目都已保存,因此 seed.rb 是否已通过所以,我如何查看数组是否已保存?(所有元素)谢谢

4

4 回答 4

0

使用create!而不是create. 如果保存失败,它将引发异常。

于 2013-04-01T15:57:10.527 回答
0
if categories.all?(&:save)
  puts "categories saved"
else
  [...]
end
于 2013-04-01T17:17:15.433 回答
0

.create正在创建记录。因此,当您到达 if 语句时,什么也没有发生,因为在创建过程中保存已经发生。

将您的更改.create为 a .new,您将能够检查保存是否成功:

puts 'DEFAULT Categories'
categories = Category.new([{name:'cat1'},{name:'cat2'}, {name: 'cat3'} ])  
if categories.save  
  puts "categories saved"  
else  
  puts "categories save failed"  
end  
于 2013-04-01T17:44:47.923 回答
0
if categories.all.each(&:persisted?)
  puts "categories saved"
else
  [...]
end
于 2013-04-01T18:16:28.330 回答