1

最近will_paginategemをインストールしましたが、うまく機能しますが、現在のセットアップで機能させたいと思います。現在、すべてのフィード(または投稿)を同じページに表示していますが、それらはそのページをクリックした人の数に基づいて並べ替えられています。

controller.rb

 @t = Time.now
 @h1 = @t - 1.hour
 @feeds = Feed.find(:all, :order => "created_at DESC").sort { |p1, p2| p2.impressionist_count(:filter=>:all, :start_date=>@h1) <=> p1.impressionist_count(:filter=>:all, :start_date=>@h1)}

今...私はpaginategemをテストしましたが、コントローラーでこれを行うと正常に動作します。

controller.rb

 @feeds = Feed.paginate(:per_page => 10, :page => params[:page], :order => "created_at DESC")

だから私は1+1 = 2と思い、次のようにして2つを組み合わせようとしました。

controller.rb

@feeds = Feed.paginate(:per_page => 10, :page=>params[:page], :order => "created_at DESC").sort { |p1, p2| p2.impressionist_count(:filter=>:all, :start_date=>@h1) <=> p1.impressionist_count(:filter=>:all, :start_date=>@h1)}

投稿を並べ替えてページを表示することができません。ページを読み込もうとするとエラーが発生します。

#の未定義メソッド `total_pages'

私はこれが機能することを望みます、それはかなり甘いでしょう:)。しかし、それが機能しない場合、これを行う他の方法はありますか?

前もって感謝します!

4

1 に答える 1

6

これは、will_paginateがデフォルトでActiveRecordリレーションシップでのみ機能するためです。ソートを使用すると、配列に変換されます。will_paginateを配列で機能させる場合は、コントローラーでのサポートが必要になります。

require 'will_paginate/array' 
于 2013-01-27T22:38:43.120 に答える