如何确定数组是否保存在rails中?

时间:2013-04-01 15:55:50

标签: ruby-on-rails ruby arrays seed

在我的seed.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 个答案:

答案 0 :(得分:0)

使用create!代替create。如果它无法保存,它会引发异常。

答案 1 :(得分:0)

if categories.all?(&:save)
  puts "categories saved"
else
  [...]
end

答案 2 :(得分:0)

.create正在创建记录。所以,当你到达if语句时没有发生任何事情,因为在创建期间已经发生了保存。

将您的.create更改为.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  

答案 3 :(得分:0)

if categories.all.each(&:persisted?)
  puts "categories saved"
else
  [...]
end