私は現在、いくつかの選択ボックスでソートされた作業テーブルを持っています。私は最近、このチュートリアルに従って、エンドレス/無限スクロールを実装しました: http://railscasts.com/episodes/114-endless-page-revised? view=asciicast
チュートリアルはいくつかの変更を加えても機能しましたが、問題が1つあります。最初の列にカウンターを使用していますが、問題は、次のページをロードするたびにカウンターが1にリセットされるため、カウンターは1..2..3 ..のようになりますが、50になります。下にスクロールすると、1にリセットされます。現在、最初に50レコードを表示しており、ユーザーが下にスクロールするたびにさらに50レコードを表示しています。次のレコードは51...52 ...53...などにしたいと思います。次に下にスクロールするときは、101から開始し、次に102 ... 103 ... 104 ...など、たとえばランキングリストのように開始します。
パーシャルを取得するために、私はこのチュートリアルに従い、カウンター列の作成方法も教えてくれました:http: //xianese.blogspot.com/2008/06/render-collection.html
いくつかの調査を行った後、私が使用しているカウンターはほとんど文書化されていないことがわかりました。何人かの人々がそれに関するページ付けの問題を報告しました。これは、無限スクロールの問題だけでなく、ページ付けの問題であることを意味します(私は使用していますwill_paginate)。あるウェブサイトで、ある人がページネーションの問題を解決したと言ったが、その方法を言わず、投稿が閉じられたので、この問題を解決する方法があることを私は知っています。
これはそのウェブサイトへのリンクです: http ://www.pgrs.net/2007/07/20/render-partial-with-collection-has-hidden-counter/
私を助けることができるものは何でも大歓迎です。
これが私のコードです:
articles.js.coffee
jQuery ->
if $('.pagination').length
$('#articles_table').scroll ->
url = $('.pagination .next_page').attr('href')
if url && $('#articles_table')[0].scrollHeight -
$('#articles_table').scrollTop() < 700
$('.pagination').text('Fetching more users...')
$.getScript(url)
$('#articles_table').scroll()
index.html.erb
<table class="table table-striped table-bordered span8 table-condensed"
id="articles_table" >
<thead class="header">
<tr>
<th>ID</th>
<th>Title</th>
<th>Description</th>
<th>Created_At</th>
</tr>
</thead>
<tbody>
<%= render @articles %>
</tbody>
index.js.erb
$('#articles_table').append('<%= j render(@articles) %>');
<% if @articles.next_page %>
$('.pagination').replaceWith('<%= j will_paginate(@articles) %>');
<% else %>
$('.pagination').remove();
<% end %>
_article.html.erb
<tr>
<td> <%= article_counter +1 %> </td>
<td> <%= article.Title %> </td>
<td> <%= article.Description %> </td>
<td> <%= article.Created_At %> </td>
</tr>
ありがとう、
ジャック