From 1ae93aecd7e482ba978dac1aaa9220171e19ac55 Mon Sep 17 00:00:00 2001 From: albert Date: Fri, 12 Feb 2010 18:59:50 -0500 Subject: [PATCH] converted implication.with_descendants to use cache.get_multi --- app/models/tag_alias.rb | 2 +- app/models/tag_implication.rb | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) 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