シャッフルされたActiveRecordクエリのページを作成しようとしています。雷の宝石を使用してこれを行うための構文は次のとおりです。これでシャッフルされたActiveRecordクエリのページ番号
@users = Kaminari.paginate_array(User.all.shuffle).page(params[:page]).per(20)
問題はUser.all
が重複したレコードが呼び出される原因と、各ページネーション要求に再シャッフルされていることです。このような重複を防ぐ方法はありますか?あなたは、クエリ
params[:seed] ||= Random.new_seed
srand params[:seed].to_i
@users = Kaminari.paginate_array(User.all.shuffle).page(params[:page]).per(20)
とビューでの間のランドのための種を渡す必要が
'User.all'を呼び出すと、サーバーの速度が大幅に低下する可能性があります。 100人のユーザーしかいなくても、すべてのユーザーがすべての要求に応じてルビメモリスペースにすべてのユーザーを連れて来るという不必要なコストを支払うことになります。 –