3

このクエリを使用して、コントローラーのデータベースからいくつかの行をフェッチしています。

@main = connection.execute("select code_ver, result from mastertest;")

これで、html.erbで、次のようなテーブルに結果を表示しています。

<% @level1.each do |row1| %>
<table id="tbl_main1" name="tbl_main1">
    <tr bgcolor="#D1D1D1">
        <td width="60%" <%= row1[0] %>></td>
        <td width="20%"><%= row1[2] %></td>
        <td width="20%"><%= row1[1] %></td> 
    </tr>
</table>

ここでたくさんの行をフェッチしています。ただし、一度に15件の結果のみを表示し、結果を循環する「次へ」と「前へ」のボタンをいくつか表示したいと思います。どうすればいいですか?

4

3 に答える 3

2

この宝石を見てください https://github.com/mislav/will_paginate

Will_paginate は、探しているものに役立つ可能性があります。

他の宝石もありますが、ページネーションのニーズを満たす will_paginate を見つけました。

編集 あなたがしているように見える配列のページネーションを計画している場合は、次のことができます。

require 'will_paginate/array'

その後your_array.paginate page: x, per_page: y

x は表示するページ、y は 1 ページあたりのアイテム数です。

于 2012-10-26T19:01:46.113 に答える
2

Rails 3 を使用している場合は、ページネーションについて kaminari を参照してください: https://github.com/amatsuda/kaminariおそらく、ジェネリック配列オブジェクトのページネーション機能に興味があるでしょう。ただし、これは SQL クエリにオフセットと制限を追加しないことに注意してください。

カミナリは、Rails スコープを利用し、オブジェクトをグローバルに汚染しないため、Rails 3 の will_paginate よりも優れていると広く考えられています。

于 2012-10-26T19:43:11.360 に答える
1

mastertest データベース テーブルを表す Active Record モデルを作成することをお勧めします。次に、will_paginate宝石の助けを借りて、コントローラーで次のことを行うことができます。

@mastertests = MasterTest.all.paginate(:page => params[:page], :per_page => 15)

そして、あなたの見解では:

<% @mastertests.each do |mastertest| %>
  <td><%= mastertest.code_ver %></td>
  <td><%= mastertest.result %></td>
<% end %>
<%= will_paginate @mastertests %>

will_paginateビュー ヘルパーは [前] [1] [2] [3] [次] のようなページネーション リンクを生成します。その他のオプションについては、github の will_paginate gem を参照してください。

于 2012-10-26T20:11:47.920 に答える