diff --git a/app/models/concerns/subjectable.rb b/app/models/concerns/subjectable.rb
index c18c23290924d0d33d32192fcd3e3072b8412e62..58b37ca250fbb340f1ae25e9711496bcc6d601a9 100644
--- a/app/models/concerns/subjectable.rb
+++ b/app/models/concerns/subjectable.rb
@@ -45,4 +45,11 @@ module Subjectable
       SubjectRelation.where(subject: subject, subjectable: self).destroy_all
     end
   end
+
+  def update_subjects(ids: [])
+    subjectable = self
+    old_ids = subjectable.subjects.map { |su| su.id }
+    add_subjects(ids: ids - old_ids)
+    remove_subjects(ids: old_ids - ids)
+  end
 end