2017-01-29 14 views
0

私は2つのモデル(「イベントと提案」と呼ばれる)を持つ「ニュースフィード」を持つWebアプリケーションを構築しています。ページ区切りが個別に適用されるのではなく、合計に適用されるようにニュースフィードをページ設定することは可能ですか?ここまで私のコントローラーでこれまで持っていたことがあります。 ActiveRecord Associationではなく、結果が配列なので、2つを追加するだけですが、動作しません。前もって感謝します!5ページ目のページ分割 - 「ニュースフィード」に2つのモデルがあり、合計を改ページしていますか?

答えて

0

「will_paginate」を使用するとします。これを試してください。あなたの初期化子でこれを入れて:

require 'will_paginate/array' 

、あなたはこのようなことを行うことができます。

@objects = (Suggestion.all + Event.all).sort_by &:created_at 
@objects.paginate(:page =>params[:page], per_page: 25) 

ここでの問題はパフォーマンスです。この方法では、毎回データベースからすべてのレコードを取得してから改ページを実行します。

+0

はい、パフォーマンス上の問題があります。これを回避する方法はありますか?これがページ付けの主な理由でした... – flaurida

+0

キャッシュを作成できました。例えば、news_type、:news_id、:created_atのようなフィールドを持つ "news"テーブル。次に、提案とイベントのafter_createコールバックを使用して、このテーブルにデータを配置します。最後に、実際のテーブルからデータを取得するためにジョインを使用してこのモデルをページ付けします。 –

+0

news_typeは「suggestion」または「event」であり、news_idはこれらのテーブルのエントリへの参照です –

関連する問題