如何爲每個用戶選擇一個隨機記錄,但是按最新的記錄pr排序陣列。用戶。幫助將Rails 2數據庫邏輯轉換爲Rails 3.1/PostgreSQL
如果Foo上傳新的繪畫,我想從foo中選擇一個隨機記錄。通過這種方式,上傳10幅作品的用戶不會獨佔首頁上的所有空間,但仍然可以在頁面頂部獲得插槽。
這就是我在MySQL上運行Rails 2.x的方式。
@paintings = Painting.all.reverse
first_paintings = []
@paintings.group_by(&:user_id).each do |user_id, paintings|
first_paintings << paintings[rand(paintings.size-1)]
end
@paintings = (first_paintings + (Painting.all - first_paintings).reverse).paginate(:per_page => 9, :page => params[:page])
上面的示例生成了很多SQL查詢,並且進行了適當的嚴格優化。如何在Rails 3.1上運行PostgreSQL?我有7000條記錄..
我想你的意思是'''Painting.reversed'''的用法。 –
大聲笑:)謝謝,糾正! – jamesc
沒問題,很樂意幫忙。 –