Hi guys, I am a bit stuck here, I know the following is damn wrong, but I couldn''t figure out a cleaner solution yet. I have a bunch of images, each one has a published date and a ''liked'' number. A user can click like from an image once. The index of the images can be sorted after ''liked'', and ''published''. The show from an image has a next and prev button, so that you can browse through the all images. A picture has a next_picture and prev_picture method, so that it can fetch it''s successor and predecessor. ## pictures_controller def index .. @pictures = Picture.where(:state => ''published'').paginate :page => params[:page], :per_page => per_page, :order => "#{sort_order.to_s} DESC" .. end ## pictures model def prev_picture prev_picture = self.class.where(sort_order.gte => send(sort_order), :uid.ne => uid, :state => ''published'').order(sort_order).first return nil if prev_picture.blank? if send(sort_order).eql?(prev_picture.send(sort_order)) pictures = self.class.where(:state => ''published'').order("#{sort_order.to_s} DESC").all (pictures.index(self) == 0) ? nil : pictures[pictures.index(self)-1] else prev_picture end end Ok, the next_piture method looks very similar. Basically this will fetch the previous picture from the database. If the sort_order attribute from both are the same, it will fetch all pictures and grabs the one in the array before the current one. I tried the whole thing with a second order parameter, but it really get''s complicated, as soon as I have to fetch the previous or next picture. -- 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.