Active Record Random
August 30, 2009
Are you looking for a way to select a random record that plays nice with named scope in your Rails app? Throw this into config/initializers/active_record_random.rb:
class ActiveRecord::Base
def self.random
if (c = count) > 0
first(:offset => rand(c))
end
end
end
Now you can call random the same way you would call first or all. That means you can do Widget.random to get a random widget or Widget.fancy.random, to get a random fancy widget, assuming you have defined the fancy named scope for Widget.