Rails 3.2 애플리케이션에 will_paginate를 사용하려하고 db의 데이터가 변경되는 동안 누군가가 페이징 할 때 어떤 일이 발생하는지에 대한 참조가 전혀 표시되지 않았습니다. . 특히, 새로운 레코드가 추가됩니다.Rails will_paginate and 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
내가 첫 페이지로드의 타임 스탬프를 추가하는 방법에 대한 생각 연속 된 아약스 호출에 전달하여 중복 레코드를 가져 오지 않기 위해 처음에 있던 레코드를 필터링합니다.
이것을 처리하는 모범 사례가 있습니까?
첫 번째 페이지로드 당시의 데이터 만 가져 오기 위해 타임 스탬프를 사용했습니다. – Oded
그런 경우 타임 스탬프보다 최근의 레코드가 있는지 검사를 추가하고, 그렇다면 사용자가 더 최근의 결과를로드 할 수 있도록 링크를 표시 할 수 있습니다 (트위터에서이 작업을 수행하는 방법 참조). 예). – Benissimo