2016-08-21 104 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最適合我,因爲它會生成一個插入。 –

相關問題