我知道我可以跳过对单个保存的验证,如下所示:
User.new(name: 'John').save(validate: false)
但是,当我一次保存多个对象时,该如何操作呢?例如:
Category.create([ { name: 'Apps' }, { name: 'Songs' }, { name: 'Movies' } ])
2g32fytz1#
我发现了这颗宝石:https://github.com/zdennis/activerecord-import它的工作原理如下:
categories = [ Category.new(name: 'Apps'), Category.new(name: 'Songs'), Category.new(name: 'Movies') ] Category.import(categories, validate: false)
也可以使用普通数组代替ActiveRecord对象。我猜当 validate 设置为false时,它会生成纯SQL,因此可以跳过验证。
8nuwlpux2#
对于create,你不能这样做。如果你真的必须跳过验证,你可以这样做:
create
[ { name: 'Apps' }, { name: 'Songs' }, { name: 'Movies' } ].each do |attributes| c = Category.new(attributes) s.save(validate: false) end
2条答案
按热度按时间2g32fytz1#
我发现了这颗宝石:https://github.com/zdennis/activerecord-import
它的工作原理如下:
也可以使用普通数组代替ActiveRecord对象。
我猜当 validate 设置为false时,它会生成纯SQL,因此可以跳过验证。
8nuwlpux2#
对于
create
,你不能这样做。如果你真的必须跳过验证,你可以这样做: