How to get last N records with activerecord?
This is the Rails 3 way
SomeModel.last(5) # last 5 records in ascending orderSomeModel.last(5).reverse # last 5 records in descending order
Updated Answer (2020)
You can get last N records simply by using last method:
Record.last(N)
Example:
User.last(5)
Returns 5 users in descending order by their id.
Deprecated (Old Answer)
An active record query like this I think would get you what you want ('Something' is the model name):
Something.find(:all, :order => "id desc", :limit => 5).reverse
edit: As noted in the comments, another way:
result = Something.find(:all, :order => "id desc", :limit => 5)while !result.empty? puts result.popend
new way to do it in rails 3.1 is SomeModel.limit(5).order('id desc')