我想从Rails应用程序中批量将几千条记录插入数据库(在我的例子中是POSTGRES).

"Rails方式"是什么?

我知道我可以通过属性的字符串连接来创建SQL查询,但我想要一种更好的方法.

推荐答案

ActiveRecord .create方法支持批量创建.如果DB不支持该功能,该方法将模拟该功能,如果该功能受支持,则使用底层DB引擎.

只需传递一系列选项.

# Create an Array of new objects
User.create([{ :first_name => 'Jamie' }, { :first_name => 'Jeremy' }])

块是受支持的,这是共享属性的常见方式.

# Creating an Array of new objects using a block, where the block is executed for each object:
User.create([{ :first_name => 'Jamie' }, { :first_name => 'Jeremy' }]) do |u|
  u.is_admin = false
end

Ruby-on-rails相关问答推荐

错误AESGCMOpen获取密码:消息身份验证失败:Golang解密GCM

有没有一种方法可以点击一个按钮来冒泡到父元素?

Sweet Alert 2 在 Rails 7 应用程序中无法正常工作

计算总价(商品数量*商品价格)

Rails 控制台 - 更新 Gem 后的弃用通知

错误 NoMethodError:ActionView::Base:Class 的未定义方法 `debug_rjs='

使用rails form_for时带有_path的未定义方法

骨干model.destroy()即使工作正常也会调用错误回调函数?

如何在 Rails 中使用 instance_eval 子句删除验证?

用 url_for 查询参数?

RSpec 设置会话对象

Rails:设计:按角色登录后重定向

如何按值按降序对哈希进行排序并在 ruby​​ 中输出哈希?

activerecord 查找所有未包含在数组中的内容

我如何找出为什么我不能#destroy() 记录?

Rails 3 SSL 路由从 https 重定向到 http

Rails 4,Capistrano 3.0.0,无法加载这样的文件 - 部署

如何在 rake 任务中强制 RAILS_ENV?

使用 ActiveRecord 获取列名

如何在 Ruby 类/模块命名空间中翻译模型?