首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails-6:大量进口HABTM生产数千个插入。

Rails-6:大量进口HABTM生产数千个插入。
EN

Stack Overflow用户
提问于 2020-04-08 14:33:26
回答 1查看 125关注 0票数 1

在搜索了几个小时的最佳实践之后,我来到了这里。

我有一个新的Foo对象,并且希望为它分配数千条,我已经预先加载了这些条:

代码语言:javascript
复制
@foo = Foo.create
@bars = Bar.find_all_by_some_attribute(:a)

最快的方法是什么?我试过:

代码语言:javascript
复制
@foo.bars = @bars
@foo.bars << @bars

这将导致创建数千个insert查询。

有解决我的问题的Rails 6 (Insert_all)方法吗?还是必须使用"m2m_fast_insert“gem或硬编码的SQL?来解决它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-09 14:15:36

如果您有一个连接表设置,例如:

代码语言:javascript
复制
class Item < ActiveRecord::Base
  has_and_belongs_to_many :orders
end

class Order < ActiveRecord::Base
  has_and_belongs_to_many :items
end

class ItemsOrders < ActiveRecord::Base
  belongs_to :item
  belongs_to :order
end

我相信您可以在本例中(或您的连接模型是什么)中插入许多ItemOrdersinsert_all是Rails 6中的新特性。如果不是,最好的选择是一定量的自定义SQL。我确实在上面找到了另一个答案,这似乎是SQL:What is the fastest way to create mass HABTM associations in Rails?的一个很好的起点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61103249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档