diff --git a/app/models/concerns/tagger.rb b/app/models/concerns/tagger.rb index 3127a067369d7ecd4bb9836c659e515e1790b6ae..6d9d3735a23ce7e10f35e9512217f08d684806f5 100644 --- a/app/models/concerns/tagger.rb +++ b/app/models/concerns/tagger.rb @@ -45,4 +45,10 @@ module Tagger Tagging.where(tagger: self, tag: tag, taggable: taggable).destroy_all end end + + def update_tags(taggable, with: []) + old_tags = taggable.tags.map { |t| t.name } + tag(taggable, with: with - old_tags) + untag(taggable, with: old_tags - with) + end end