1

Rails の mislav-will_paginate プラグインを使用して、レコードのページ付けを行っています。複数のページがあるかどうかに関係なく、次の出力を生成したいと考えています。

X - Y of Z
1 - 100 of 1826

WillPaginate::ViewHelpers の will_paginate は、レコードが 1 ページしかない場合は nil を返します。これを可能な限りクリーンな方法でオーバーライドして、ページが 1 つしかない場合は上記の出力を生成し、複数のページがある場合は通常の出力に囲まれた上記の出力を生成したいと考えています。

この出力を生成するために、WillPaginate::LinkRenderer の to_html メソッドをオーバーライドしましたが、レコードが 1 ページしかない場合に生成する方法がわかりません。

X - Z の Y を生成するコードを別の場所に移動し、オーバーライドする to_html メソッドと、nil が返された場合に will_paginate 呼び出しを行う場所の両方から呼び出す必要がありますか? もしそうなら、それはどこに住むべきですか?

4

1 に答える 1

1

わかりました、これが私がしたことです:

  • モジュールページネーターを作成しました
  • モデルのヘルパーに Paginator モジュールを含めました
  • 私のビューで Paginator.paginate と呼ばれる
  • ページが 1 つしかない場合は Paginator.produce_totals を呼び出すように、または複数ページの場合は will_paginate (通常の方法) を呼び出すように Paginator.paginate を定義しました。
  • 上記のように「Z の X - Y」の合計を出力するように Paginator.produce_totals を定義しました。
  • 私の WillPaginate::LinkRenderer オーバーライド クラスに Paginator モジュールを含めました
  • オーバーライドする to_html メソッドの適切な時点で Paginator.produce_totals を呼び出しました

ふぅ!誰にとっても役立つ場合は、コードを投稿できます。質問してください。

于 2009-08-25T00:10:52.210 に答える