Вот лучшее решение для получения случайных записей из базы данных.RoR обеспечивает все в простоте использования.
Для получения случайных записей из БД используйте sample , ниже приведено описание этого с примером.
Backport of Array # sample basedна github.com/marcandre/backports/ от Marc-Andre Lafortune Возвращает случайный элемент или n случайных элементов из массива.Если массив пуст и n равно nil, возвращает nil.Если n передается и его значение меньше 0, возникает исключение ArgumentError.Если значение n равно или больше 0, возвращается [].
[1,2,3,4,5,6].sample # => 4
[1,2,3,4,5,6].sample(3) # => [2, 4, 5]
[1,2,3,4,5,6].sample(-3) # => ArgumentError: negative array size
[].sample # => nil
[].sample(3) # => []
Вы можете использовать условие согласно вашему требованию, как показано в примере ниже.
User.where (active:true) .sample (5)
случайным образом вернет 5 активных пользователей из таблицы пользователей
Для получения дополнительной помощи посетите: http://apidock.com/rails/Array/sample