在特定情况下,您好
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
次
有没有一种方法可以使我在一次查询中用其他更好的方法做到这一点。
答案 0 :(得分:2)
ActiveRecord创建也可以采用insert语句数组,该语句仅制定单个ActiveRecord对象,但仍在数据库中执行多个insert语句。请参考以下代码
SomeOtherModel.create([{some_column: some_id}, {some_column: some_id}, {some_column:some_id}])
要一次插入多个记录,最好使用带有多个值的原始SQL插入命令。
答案 1 :(得分:1)
选中activerecord-import宝石,它可以批量插入。
答案 2 :(得分:1)