ruby-on-rails - 我们可以在 Ruby on Rails ActiveRecord 的一个查询中插入多行吗?

标签 ruby-on-rails activerecord

嗨,在给定的情况下

 some_model_id = [1, 2, 3, 4]
 some_model_id.each do |some_id|
   SomeOtherModel.create(some_column: some_id)
 end

这里insert查询将运行 n次数取决于 some_model_id尺寸

有没有一种方法可以让我在单个查询中使用其他更好的方法来完成它。

最佳答案

ActiveRecord create 也可以采用insert 语句数组,它只会制定单个ActiveRecord 对象,但它仍然在数据库中执行多个insert 语句。引用以下代码

SomeOtherModel.create([{some_column: some_id}, {some_column: some_id}, {some_column:some_id}])

要一次插入多条记录,最好使用带有多个值的原始 SQL 插入命令。

关于ruby-on-rails - 我们可以在 Ruby on Rails ActiveRecord 的一个查询中插入多行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51061000/

相关文章:

ruby-on-rails - 用户注册 Facebook 时如何修复空白电子邮件错误(通过 Omniauth)

ruby-on-rails - Ruby on Rails,从另一个模型创建记录

ruby-on-rails - Ruby on Rails - 在另一个模型的表单上添加模型的字段

ruby-on-rails - 无法将 Puma 作为服务启动

mysql - 父类别与所有子类别的数据 MYSQL 查询到 Codeigniter Active Record

ruby-on-rails - 将附加参数传递给 Rails 生成模型?

ruby-on-rails - ruby rails : How do you prefix named routes?

mysql - 使用 Active Record 区分大小写的数据库搜索

sql - Rails ActiveRecord 中的复杂连接

ruby-on-rails - rails 中的模式匹配( "where column LIKE ' %foo%")与 Postgres