Rails: получить определенное количество случайных записей

Итак, в моем приложении есть фотографии, которые принадлежат коллекциям. Я хочу иметь возможность показывать на странице 13 фотографий из определенной коллекции.

Я пробовал это:

c = Collection.first
@photos = c.photos.offset(rand(c.photos.count)).limit(13)

Это вроде как работает. Проблема в том, что если в коллекции не намного больше 13 фотографий, то она не обязательно возвращает 13 фотографий. Мне нужно получить именно 13 фотографий. .

FWIW В случае моего приложения Коллекция создается только администраторами / модами, поэтому мы можем обеспечить, чтобы ни в одной коллекции не было менее 13 фотографий. Мне нужно иметь возможность начать выборку фотографий случайным образом. когда доступно более 13.

Как я могу это сделать?

7
задан Andrew 17 March 2011 в 17:06
поделиться