Yeah I thought about that but it wouldnt work beacuse the last 10 things might only be posts and no invites. yet I would still try to fetch invites. Also I think it would get very confusing with offset if not impossible.
I tried to 'extend' the post item but it doesnt quite feel right.. I could make another model for stream but that just feels like im putting layer on top of layer trying to get stuff sorted... I would then need a polymorphic association for a stream item so in a stream there can be other objects but then on the view layer I add another layer... it just feels like there must be a nicer better way of doing it. Fetching all the records and then sorting doesnt seem like an option a year on from now when some people might have 2000 posts and 500 invites.. can get pretty heavy on the DB :P But thanks for the input Frederick. On Jul 30, 5:55 pm, Frederick Cheung <[email protected]> wrote: > On Jul 30, 4:36 pm, Stefano <[email protected]> wrote: > > > > > > > Hi guys > > > I am not sure if it is actually possible what I am trying to do, but > > Im sure you can help me with it. > > Let me start with my models: > > > class User < ActiveRecord::Base > > has_many :wall_posts, :class_name => "Post", :foreign_key => > > "wall_id", :order => 'created_at DESC' > > has_many :invites, :class_name => "Invite", :foreign_key => > > "contact_id", :order => 'created_at DESC' > > end > > > Now what I want is to combine this to a sort of stream (facebook > > style). This works fine if I do it with an array as in: > > > def stream > > stream = wall_posts + invites > > end > > > but in my view I am using a little bit of javascript and ajax to make > > an 'endless' page. So of course I am using limit and offset. This > > works fine on SQL queries but not for the arrays. So obviously it is > > then not possible to write user.stream.limit(6).offset(6) because its > > already an array.. > > > i tried different joins on posts but i cant really get it to work > > properly. I have to mix them into a stream so that they arrange > > properly chronologically. > > Well the slice method on array does sort of the same thing as limit/ > offset, eg > > [1,2,3,4,5,6,7,8,9,10].slice(3,4) #=> [4, 5, 6, 7] > > However if you were to do stream.slice(...) then that would load all > the wall_posts and invites before slicing. If you want to load only > those that are actually going to be displayed then you'll have to come > up with something different, eg passing in both the offset for > wall_posts and the one for invites. > > Fred > > > > > > > Thank you for your help, I appreciate it. > > > Kind regards > > Stefano -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

