myexperiment-hackers
[Top][All Lists]
Advanced

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

[myexperiment-hackers] [2187] trunk/app/models/network.rb: Faster .membe


From: noreply
Subject: [myexperiment-hackers] [2187] trunk/app/models/network.rb: Faster .members.
Date: Tue, 5 May 2009 11:22:47 -0400 (EDT)

Revision
2187
Author
dtm
Date
2009-05-05 11:22:47 -0400 (Tue, 05 May 2009)

Log Message

Faster .members.

Modified Paths

Diff

Modified: trunk/app/models/network.rb (2186 => 2187)


--- trunk/app/models/network.rb	2009-05-05 12:14:48 UTC (rev 2186)
+++ trunk/app/models/network.rb	2009-05-05 15:22:47 UTC (rev 2187)
@@ -123,13 +123,13 @@
                           
   alias_method :original_members, :members
   def members(incl_owner=true)
-    rtn = incl_owner ? [User.find(owner.id)] : []
-    
-    original_members(force_reload = true).each do |m|
-      rtn << User.find(m.user_id)
-    end
-    
-    return rtn
+    explicit_members = User.find(:all,
+                                 :select     => "users.*",
+                                 :joins      => "JOIN memberships m on (users.id = m.user_id)",
+                                 :conditions => [ "m.network_id=? AND m.user_established_at IS NOT NULL AND m.network_established_at IS NOT NULL", id ],
+                                 :order      => "GREATEST(m.user_established_at, m.network_established_at) DESC"
+                                )
+    return incl_owner ? ( [owner] + explicit_members ) : explicit_members
   end
                           
   def member?(userid)

reply via email to

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