myexperiment-hackers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[myexperiment-hackers] [2946] trunk/app/models/user.rb: improved speed o


From: noreply
Subject: [myexperiment-hackers] [2946] trunk/app/models/user.rb: improved speed of getting lists of friends
Date: Sat, 25 Feb 2012 08:51:46 +0000 (UTC)

Revision
2946
Author
dgc
Date
2012-02-25 08:51:45 +0000 (Sat, 25 Feb 2012)

Log Message

improved speed of getting lists of friends

Modified Paths

Diff

Modified: trunk/app/models/user.rb (2945 => 2946)


--- trunk/app/models/user.rb	2012-02-24 13:58:46 UTC (rev 2945)
+++ trunk/app/models/user.rb	2012-02-25 08:51:45 UTC (rev 2946)
@@ -376,11 +376,15 @@
   end
   
   def friends
-    User.find(:all,
-              :select => "users.*",
-              :joins => "JOIN friendships f ON (users.id = f.friend_id OR users.id = f.user_id)",
-              :conditions => ["(f.user_id = ? OR f.friend_id = ?) AND (f.accepted_at IS NOT NULL) AND (users.id <> ?)", id, id, id],
-              :order => "lower(users.name)" )
+    f  = User.find(:all,
+                   :joins => 'INNER JOIN friendships ON users.id = friendships.user_id',
+                   :conditions => ['friendships.friend_id = ? AND friendships.accepted_at IS NOT NULL', id])
+
+    f += User.find(:all,
+                   :joins => 'INNER JOIN friendships ON users.id = friendships.friend_id',
+                   :conditions => ['friendships.user_id = ? AND friendships.accepted_at IS NOT NULL', id])
+
+    f.sort do |a, b| a.name.downcase <=> b.name.downcase end
   end
   
   has_and_belongs_to_many :networks,

reply via email to

[Prev in Thread] Current Thread [Next in Thread]