2

Rails で will_paginate を使用してページネーションを使用しています。99 個のアイテムがロードされたテーブルがあります。次のコマンドを使用して、2 番目のページの最初の要素を取得しようとすると:

Item.paginate(page: 2).first

Rails の戻り値:

#<Item id: 2, ...>

ただし、正しい答えは次のとおりです。

#<Item id: 32, ...>

興味深いことに、「first」メソッドを使用せずに、結果の配列の最初の要素にインデックスを付けると、正しい答えが得られます。

Item.paginate(page: 2)[0]

戻り値:

#<Item id: 32, ...>

なんで?

4

1 に答える 1

2

will_paginate と .first メソッドにバグがあるようです。次のようにして回避できると思います。

Item.paginate(page: 2).all.first

これは、回避策と同様に機能します。

于 2013-01-08T18:44:35.143 に答える