Querying objects in order

(id=? might not be a good condition, since there will only be one row per id)

You could use find(:all) and then step through them.

If you want to find them one at a time, use :offset

   Model.find :first, :conditions => blah, :offset => 0 # first    Model.find :first, :conditions => blah, :offset => 1 # second    Model.find :first, :conditions => blah, :offset => 2 # third

It's basically paginating with a page size of 1

I don't know if this is guaranteed to work for all databases. It works for MySQL. Also you probably should use :order whenever you use :offset.