making ActiveRecord::Base sort by id


I’m trying to mix in a module so that AR::Base will sort all record by ID by default.

I’ve worked up a repo with a few methods of doing things similar to this, but I can’t get this working as I want (I started with the rails project from )

There are three non-master branches on that project:

  • is close but doesn’t work. This is close to what I want to get working. Can anyone help me get this branch working?
  • works but introduces an intermediate subclass
  • puts the ‘order by’ directly in the mode. Works but requires change to each subclass.

Again, can anyone help me to make the changes to get the branch at


Thanks very much in advance,


Can I ask why you would want to do that? You don't have to give a reason of course, just interested.


I would not recommend using a default scope on an ActiveRecord model for sorting.

Start your Rails console and try Model.find(1). This will result into: SELECT models.* FROM models WHERE ORDER BY id DESC LIMIT 1

This ORDER BY will be included in every unneccessary query. The above query will be slower in MySQL than without the ORDER BY clause. Try it yourself!

Create a normal scope and include it with every query where you expect more than 1 record as a result.

In case you consider a mixin try ActiveSupport::Concern