ユーザごとに1つのランダムレコードを選択する方法はありますが、最新のレコードprで配列を並べ替えるにはどうすればいいですか?ユーザー。Rails 2データベースロジックをRails 3.1/PostgreSQLに変換する際のヘルプ
Fooが新しい絵をアップロードした場合、fooから1つのランダムなレコードを選択したいと思います。この方法では、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クエリが生成され、正しく最適化されています。 PostgreSQL上で実行されているRails 3.1ではどうすればよいですか?あなたが本当に絵画の順序を逆にしたい場合は、私は7000枚の記録..
私はあなたが使用方法について '' 'Painting.reversed'''を意味したと思います。 –
笑:)ありがとう、訂正しました! – jamesc
問題はありません。喜んで助けてください。 –