Есть ли способ получить случайную запись несколько раз в ActiveRecord? - PullRequest
0 голосов
/ 20 января 2019

Я пытаюсь получить несколько случайных записей из моей таблицы несколько раз.

Я попробовал следующее:

random = []
10.times {random.push(People.order("RAND()").limit(5))}

Я ожидаю получить массив из 10 различных списков из 5 случайных людей из таблицы в случайном порядке.Но вместо этого я получаю один и тот же список из 5 случайных людей 10 раз.Что я делаю не так?

Редактировать:

Также вот что я получаю из журнала

People Load (1.2ms) SELECT  `peoples`.* FROM `peoples` ORDER BY RAND() LIMIT 5
CACHE People Load (0.0ms) SELECT  `peoples`.* FROM `peoples` ORDER BY RAND() LIMIT 5
CACHE People Load (0.0ms) SELECT  `peoples`.* FROM `peoples` ORDER BY RAND() LIMIT 5
CACHE People Load (0.0ms) SELECT  `peoples`.* FROM `peoples` ORDER BY RAND() LIMIT 5
CACHE People Load (0.0ms) SELECT  `peoples`.* FROM `peoples` ORDER BY RAND() LIMIT 5
CACHE People Load (0.0ms) SELECT  `peoples`.* FROM `peoples` ORDER BY RAND() LIMIT 5
CACHE People Load (0.0ms) SELECT  `peoples`.* FROM `peoples` ORDER BY RAND() LIMIT 5
CACHE People Load (0.0ms) SELECT  `peoples`.* FROM `peoples` ORDER BY RAND() LIMIT 5
CACHE People Load (0.0ms) SELECT  `peoples`.* FROM `peoples` ORDER BY RAND() LIMIT 5
CACHE People Load (0.0ms) SELECT  `peoples`.* FROM `peoples` ORDER BY RAND() LIMIT 5

Edit2:

Исправлено, делая

random = []
People.uncached do
  10.times {random.push(People.order("RAND()").limit(5))}
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...