У меня есть модель:
class HotelTheme < ActiveRecord::Base has_many :hotels end
Я хочу получить 6 отелей, используя случайный выбор.
Я пытался:
@hotelTheme.hotels.rand(6)
Но не получается, любая идея?
Спасибо
Вы можете использовать следующий синтаксис:
@hotelTheme.hotels.order("RANDOM()").limit(6) #for MySQL RAND()
RANDOM() - это встроенная функция SQL, которая медленно работает с большими таблицами. Также взгляните на случайный камень .
RANDOM()
Если вы не возражаете против возврата всех hotel с, когда вам нужно только шесть, вы можете сделать
hotel
@hotelTheme.hotels.shuffle[0..5]
Но если ваш hotel_theme имеет нагрузку hotel с, это, вероятно, довольно плохая идея.
hotel_theme