2016-08-21 95 views
1

我知道我可以跳过验证对单个保存,这样跳过验证:ActiveRecord的:当保存多个对象

User.new(name: 'John').save(validate: false) 

但我怎么能这样做,在一次保存多个对象时?像这样:

Category.create([ 
    { name: 'Apps' }, 
    { name: 'Songs' }, 
    { name: 'Movies' } 
]) 

回答

1

你不能这样做与create。如果你真的必须跳过验证,你可以做这样的事情:

[ 
    { name: 'Apps' }, 
    { name: 'Songs' }, 
    { name: 'Movies' } 
].each do |attributes| 
    c = Category.new(attributes) 
    s.save(validate: false) 
end 
+0

谢谢你指出这个选择。不过,我需要保存一些长数据集,这种方式会产生很多SQL插入。 [activerecord-import](https://github.com/zdennis/activerecord-import)gem最适合我,因为它会生成一个插入。 –

相关问题