This is how I did it for one recent client:
def self.prior_to id find(:first, :conditions => ["#{primary_key} < ?", id], :order => "#{primary_key} DESC") || find(:first, :conditions => ["#{primary_key} >= ?", id], :order => "#{primary_key}") end
def self.next_after id find(:first, :conditions => ["#{primary_key} > ?", id], :order => "#{primary_key}") || find(:first, :conditions => ["#{primary_key} <= ?", id], :order => "#{primary_key} DESC") end
-Rob
Rob Biedenharn http://agileconsultingllc.com Rob@AgileConsultingLLC.com