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