Here’s a little module that will make adding things like Cards.random(4) a breeze!
# This module takes care of adding a random scope to records
module RandomScope
def self.included(model)
model.class_eval do
if connection.adapter_name == "MySQL"
named_scope :random, lambda { |amount|
if(amount)
{:order => "RAND()", :limit => amount}
else
{:order => "RAND()"}
end
}
else
named_scope :random, lambda { |amount|
if(amount)
{:order => "RANDOM()", :limit => amount}
else
{:order => "RANDOM()"}
end
}
end
end
end
end
