From 31b573fc54dcfcc5bbaf4ff1818e4653a995cf44 Mon Sep 17 00:00:00 2001 From: Matt Hodgson Date: Mon, 9 Dec 2013 17:18:48 -0500 Subject: [PATCH 1/2] Performance improvement for finding if a slug is already used or not --- lib/friendly_id/history.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/friendly_id/history.rb b/lib/friendly_id/history.rb index f1074bf47..dbca62350 100644 --- a/lib/friendly_id/history.rb +++ b/lib/friendly_id/history.rb @@ -81,7 +81,7 @@ module FinderMethods include ::FriendlyId::FinderMethods def exists_by_friendly_id?(id) - joins(:slugs).where(arel_table[friendly_id_config.query_field].eq(id).or(slug_history_clause(id))).exists? + where(arel_table[friendly_id_config.query_field].eq(id)).exists? || joins(:slugs).where(slug_history_clause(id)).exists? end private From caaa0e2aea0ab69fa60da0314c5058c84a248fe8 Mon Sep 17 00:00:00 2001 From: Matt Hodgson Date: Mon, 9 Dec 2013 17:47:30 -0500 Subject: [PATCH 2/2] Apparently this join is used other places as well --- lib/friendly_id/history.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/friendly_id/history.rb b/lib/friendly_id/history.rb index dbca62350..77469c8b0 100644 --- a/lib/friendly_id/history.rb +++ b/lib/friendly_id/history.rb @@ -81,7 +81,7 @@ module FinderMethods include ::FriendlyId::FinderMethods def exists_by_friendly_id?(id) - where(arel_table[friendly_id_config.query_field].eq(id)).exists? || joins(:slugs).where(slug_history_clause(id)).exists? + joins(:slugs).where(arel_table[friendly_id_config.query_field].eq(id)).exists? || joins(:slugs).where(slug_history_clause(id)).exists? end private