我有以下内容:
module Bar < ActiveRecord::Base
belongs_to :foo
...
module Foo < ActiveRecord::Base
has_many :bars, dependent: :destroy
def build_bars
1000.times do |i|
bars.build(num: i)
end
end
def create_default_bars!
build_bars
save
end
注意Foo#build_bars
便宜。即使它循环了 1000 次,也只需要很少的时间。但是,一旦你点击save
,突然 ActiveRecord 决定执行 1000 次插入,这非常慢。
我如何编写一个自定义方法,以便它对我建立save_the_bars
的所有内容执行单个批量 INSERT 查询(我提醒你,1000 s 显然非常便宜),但它可以作为其中的替代品例子?bars
build
save
我期待着与这篇博文的建议 #3 一致的答案:
但是由于我的示例使用build
并依赖于一些稍微不平凡的 rails 魔法,因此如何翻译它并不是很明显。基准奖励积分!