diff --git a/lib/acts_as_taggable_on/tag.rb b/lib/acts_as_taggable_on/tag.rb index 75036150d..1cce87184 100644 --- a/lib/acts_as_taggable_on/tag.rb +++ b/lib/acts_as_taggable_on/tag.rb @@ -70,17 +70,17 @@ def self.find_or_create_all_with_like_by_name(*list) return [] if list.empty? + existing_tags = named_any(list) list.map do |tag_name| begin tries ||= 3 - - existing_tags = named_any(list) comparable_tag_name = comparable_name(tag_name) existing_tag = existing_tags.find { |tag| comparable_name(tag.name) == comparable_tag_name } existing_tag || create(name: tag_name) rescue ActiveRecord::RecordNotUnique if (tries -= 1).positive? ActiveRecord::Base.connection.execute 'ROLLBACK' + existing_tags = named_any(list) retry end