Registro aleatório para todos os modelos ActiveRecord.

Você também está acostumado a consultar o registro aleatório do ActiveRecord com algo como:

random_record = User.offset(rand(User.count)).first

O seguinte patch monkey irá adicionar um método de classe rand a todos os seus modelos ActiveRecord:

module ActiveRecord
module FinderMethods
def rand
# super = method(:rand)
# => #<Method: Object(Kernel)#rand>
klass
= self.class.to_s.split('::').first.constantize
self.offset(super(klass.count)).first
end
end
end

module ActiveRecord
module Querying
delegate :rand, to: :all
end
end

Exemplo:

 User.rand
=> #<User id: 1569>
User.rand
=> #<User id: 1532>
User.rand
=> #<User id: 1647>

Testado contra ActiveRecord 4.0.0