diff --git a/app/models/tag_alias.rb b/app/models/tag_alias.rb index 2e5415eca..f67f5fd9a 100644 --- a/app/models/tag_alias.rb +++ b/app/models/tag_alias.rb @@ -18,7 +18,7 @@ class TagAlias < ActiveRecord::Base end end - alias_hash.values.uniq + alias_hash.values.flatten.uniq end def absence_of_transitive_relation diff --git a/app/models/tag_implication.rb b/app/models/tag_implication.rb index 1b44a318e..154a6fda3 100644 --- a/app/models/tag_implication.rb +++ b/app/models/tag_implication.rb @@ -12,7 +12,9 @@ class TagImplication < ActiveRecord::Base validate :absence_of_circular_relation def self.with_descendants(names) - ([names] + where(["antecedent_name IN (?)", Array(names)]).all.map {|x| x.descendant_names_array}).flatten + Cache.get_multi(names.flatten, "ti") do |name| + ([name] + where(["antecedent_name = ?", name]).all.map {|x| x.descendant_names_array}).flatten + end.values.flatten.uniq end def absence_of_circular_relation