/active_record_random

Monkey patch to ActiveRecord to allow :order => :random that works the same for MySQL, SQLite and Postgres.

MIT LicenseMIT

ActiveRecordRandom

This plugin adds

:order => :random

to all the default ActiveRecord adapters. This means you can do this:

Post.find(:all, :order => :random, :limit => 10)

and it will work for MySQL, SQLite or Postgres without having to change the query. It also works for named scopes:

named_scope :randomized, :order => :random

Why?

Because MySQL has a different syntax than Postgres and SQLite for ordering by random. If you develop or test on SQLite and then deploy on MySQL, this is annoying. This plugin solves the problem.

Shouldn’t this be a patch to Rails?

I submitted it as a patch, but I’m such a loser that nobody gave me a +1. So for now it’s just a lowly plugin.

Copyright © 2009 Norman Clarke, released under the MIT license