Ruby on rails Rails活动记录-一次保存多个对象
我看了一眼这个问题,没有找到任何适合我的答案 例如,我有一个项目模型,它有许多任务。我想从属性数组中创建一些项目的许多任务。因此,在我的项目模型中,我会有这样一个方法(简化示例): 问题是,对于每个任务,它都会对我的数据库产生影响,并且会对大量不需要的记录产生影响。我如何做到这一点,使ActiveRecord只对我的数据库进行一次调用?Ruby on rails Rails活动记录-一次保存多个对象,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,我看了一眼这个问题,没有找到任何适合我的答案 例如,我有一个项目模型,它有许多任务。我想从属性数组中创建一些项目的许多任务。因此,在我的项目模型中,我会有这样一个方法(简化示例): 问题是,对于每个任务,它都会对我的数据库产生影响,并且会对大量不需要的记录产生影响。我如何做到这一点,使ActiveRecord只对我的数据库进行一次调用? 提前谢谢 每个插入数据库的调用都将单独完成(在不同的事务中)。但是您可以减少在单个事务中包装所有创建的总延迟 Task.transaction do t
提前谢谢 每个插入数据库的调用都将单独完成(在不同的事务中)。但是您可以减少在单个事务中包装所有创建的总延迟
Task.transaction do
tasks.each{ |task| Task.create(...) }
end
在这种情况下,您的所有创建都将封装在一个原子db事务中
Task.transaction do
tasks.each{ |task| Task.create(...) }
end
看看文档
你也可以试试
嵌套属性允许您通过父项保存关联记录上的属性
希望能有所帮助。每个插入数据库的调用都将单独完成(在不同的事务中)。但是您可以减少在单个事务中包装所有创建的总延迟
Task.transaction do
tasks.each{ |task| Task.create(...) }
end
在这种情况下,您的所有创建都将封装在一个原子db事务中
Task.transaction do
tasks.each{ |task| Task.create(...) }
end
看看文档
你也可以试试
嵌套属性允许您通过父项保存关联记录上的属性
希望有帮助。谢谢,我会的。另外,你认为在每次插入时使用线程会好吗?另外,如果你说的是“创建”,那么它们是用于并发(而不是并行)编程的。你不会从中得到任何好处的。谢谢,我会这么做的。另外,你认为在每次插入时使用线程会好吗?另外,如果你说的是“创建”,那么它们是用于并发(而不是并行)编程的。你使用它不会得到任何好处。