我有一個模型:獲取在軌從現場的has_many隨機記錄3
class HotelTheme < ActiveRecord::Base
has_many :hotels
end
我想用一個隨機獲得6家酒店。
我想:
@hotelTheme.hotels.rand(6)
但是失敗的話,任何的想法?
謝謝
我有一個模型:獲取在軌從現場的has_many隨機記錄3
class HotelTheme < ActiveRecord::Base
has_many :hotels
end
我想用一個隨機獲得6家酒店。
我想:
@hotelTheme.hotels.rand(6)
但是失敗的話,任何的想法?
謝謝
您可以使用下面的語法:
@hotelTheme.hotels.order("RANDOM()").limit(6) #for MySQL RAND()
RANDOM()
是SQL內置函數,它是對大表慢的作品。另外請看randumb gem。
不會告發的可能重複這是否會導致大表緩慢,而不是'RANDOM()'?不確定你的回答是否清楚。 – Russell
如果你不介意返回所有hotel
S的開銷,當你只想要六個,你可以做
@hotelTheme.hotels.shuffle[0..5]
但是,如果你hotel_theme
有hotel
小號加載這可能是一個不好的主意。
[從一組結果獲得的隨機記錄](http://stackoverflow.com/questions/6004820/getting-a-random-record-from-a-set-of-results) – l0b0