Optimize number of conflicts calculation

This commit is contained in:
Petko Bordjukov 2016-10-05 15:05:25 +03:00
parent c3ba666730
commit c8b9d96f66
1 changed files with 5 additions and 3 deletions

View File

@ -19,9 +19,11 @@ class ConflictCoefficient
end
def conflicts
@conflicts ||= talk_preferences.select do |talk_preference|
talk_preference.include_all? [@left, @right]
end.count
talk_preferences.joins('INNER JOIN "selected_talks" AS left
ON "left"."talk_preference_id" = "talk_preferences"."unique_id"
INNER JOIN "selected_talks" AS right
ON "right"."talk_preference_id" = "talk_preferences"."unique_id"')
.where(left: {talk_id: @left}, right: {talk_id: @right}).count
end
def total_votes