Rails为数组中的每个记录添加关联(has_many through)

时间:2016-05-11 05:10:07

标签: ruby-on-rails has-many-through

我有一个task模型,通过另一个表(task_group_relationships)有很多groups_belonging_to

has_many :task_group_relationships, class_name: "TaskGroupRelationship",
                          foreign_key: "task_id",
                          dependent: :destroy
has_many :groups_belonging_to, through: :task_group_relationships, source: :task_group

在任务数组中为每条记录添加关联时,我知道我可以这样做:

tasks.each do |task|
    task.groups_belonging_to << task_group
end

但有没有办法一次性添加关联以保存对DB的多次调用?

1 个答案:

答案 0 :(得分:0)

我刚用谷歌搜索this post,这非常有帮助。

因此,使用事务包装插入应该会有所帮助。像这样:

ActiveRecord::Base.transaction do
  tasks.each do |task|
      task.groups_belonging_to << task_group
  end
end