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
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.
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