2016-05-11 16 views
1

Ich habe ein task Modell, das viele groups_belonging_to durch eine weitere Tabelle (task_group_relationships) aufweist:Rails hinzufügen Association (has_many through) für jeden Datensatz in dem Array

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 

Beim Hinzufügen von Assoziationen zu jedem Datensatz in einer Reihe von Aufgaben, ich weiß, ich kann dies tun:

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

Aber ist es eine Möglichkeit, die Verbände auf einmal hinzuzufügen, mehrere Anrufe an die DB zu retten?

Antwort

0

Ich habe gerade googelt und gefunden this post, es ist ziemlich hilfreich.

Das Einwickeln Ihrer Beilagen mit einer Transaktion sollte also helfen. Etwas wie folgt aus:

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

ich hatte nicht wirklich darüber nachgedacht, diese als Masseneinsatz Problem, aber Sie haben recht, das ist wirklich das, was es ist, wie es ist, neue Datensätze in die 'TaskGroupRelationship' Tabelle einfügen. –

Verwandte Themen