私はRails 3.2アプリケーションにwill_paginateを使用しようとしていますが、データベース内のデータが変更されている間に誰かがページングを行っているときに何が起こるかはわかりません。具体的には、新しいレコードが追加されます。Rails will_paginateとajax、DBテーブルの変更中のページング
私はここで何か不足している可能性がありますが、それがうまくいく場合、will_paginateは単純にDBのレコードを数えます。 一度に5つのレコードを含むページを読み込み、最新のものから順に並べ替えたいとします。 ユーザーがページをロードし、ページ1に表示されているレコード6-10(その時点の最新レコード)を取得します。次に、別のレコードをテーブルid = 11に挿入します。その後、最初のユーザーがクリックして2ページに到達しましたが、2ページ目にレコード2〜6が表示されます。したがって、ユーザーは両方のページでid = 6を取得しました。
この問題は、それが悪い音ではありませんが、あなたはここに示すように、無限スクロールのためwill_paginateページングを使用する場合、それは本当に悪いです:http://railscasts.com/episodes/114-endless-page
私は最初のページのロードのタイムスタンプを追加することを考えました連続したajax呼び出しに渡して、重複を取得しないために最初に存在していたレコードをフィルタリングします。
これを処理するいくつかのベストプラクティス方法がありますか?
私はタイムスタンプを使って、最初のページの読み込み時に存在していたデータだけを取得しました。 – Oded
この場合、タイムスタンプより新しいレコードがあるかどうかのチェックを追加し、そうであればユーザーにより最近の結果を読み込ませるためのリンクを表示することを検討することもできます(例)。 – Benissimo