2011-09-13 15 views
0

一連の写真を改ページ中にランダムな順序で表示しようとしています。問題は、ページングの各ページでランダム配列が再生成されることです。ユーザーは2ページ目の写真を見ることができます。すでに1ページ目に表示されています。ここに私のコントローラーがあります:Rails randomページング中のActiveRecord

def index 
    @photos = Photo.order('random()').paginate(:per_page => 12, :page => params[:page]) 
end 

私はしばらくそれを考えていて、どんな妥当な解決策も考えられません。これは簡単に実行可能ですか?それはかなり一般的な機能のようですが、私はランダムなものを捨てなければならないかもしれません。思考?

答えて

1

シードを指定することで、乱数に順序性を導入することができます。これを使用すると、後続の呼び出しは繰り返し可能な順序付けを行います。

各データベースでは、シード値を指定する方法が異なります。ここ

@photos = Photo.order('rand(0.5)').paginate(:per_page => 12, :page => params[:page]) 

0.5、例えば、MySQLではためrand()関数にシードであろう。

同様に、Postgresにはsetseed()という機能があります。私はどのデータベースを使用しているのか分かりません。とにかく、あなたがそのアイデアを得ることを願っています。

関連する問題