Joã*_*uza 3 activerecord ruby-on-rails
我知道我可以跳过单个保存的验证,如下所示:
User.new(name: 'John').save(validate: false)
Run Code Online (Sandbox Code Playgroud)
但是,一次保存多个对象时该怎么办?像这样:
Category.create([
{ name: 'Apps' },
{ name: 'Songs' },
{ name: 'Movies' }
])
Run Code Online (Sandbox Code Playgroud)
我发现了这个宝石:https : //github.com/zdennis/activerecord-import
它是这样的:
categories = [
Category.new(name: 'Apps'),
Category.new(name: 'Songs'),
Category.new(name: 'Movies')
]
Category.import(categories, validate: false)
Run Code Online (Sandbox Code Playgroud)
我猜想,当validate设置为false时,它会生成纯SQL,因此它可以跳过验证。
你不能用create. 如果您真的必须跳过验证,您可以执行以下操作:
[
{ name: 'Apps' },
{ name: 'Songs' },
{ name: 'Movies' }
].each do |attributes|
c = Category.new(attributes)
s.save(validate: false)
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4171 次 |
| 最近记录: |