2017-08-16 12 views
0

あなたの友人が何をしているかを示すアクティビティフィードを作成しています。結果フィードがない場合、新しい条件を使用するためのアクティビティフィードのページ番号

friend_ids = current_profile.friend_ids 
@activities = Activity.where(profile_id: [friend_ids]).order('created_at desc').page(params[:page]) 

は、私は、その後に友達からのより多くのコンテンツが存在しないときのためのロジックを追加二度の接続データを使用して、すべての公開活動を使用したい:私は次のクエリと友達のデータをページ分割することができますよ。それを行うための簡単な方法がありますか?私が考えている

アプローチは、現在のページがクエリが正しいfriend_idsで更新され、以前の友人のIDを除外しますので、その後friendsまたはfriends_of_friendsまたはeveryoneを参照している場合と言う変数を追加することです。

もっと簡単なソリューションはありますか?それとも、ページングで結果が見つからないときにアクティビティフィードの結果をバブリングするという問題を解決するコードですか?

答えて

1

カミナリのデフォルトのレコードper_pageは25です。そのため、最後のページ番号の内容を調べて、条件付きで他のデータを取得することができます。

もう1つの方法は、@activitiesの長さが25であることを確認することです(ただし、1ページあたり最大数のレコード)。それが少ない場合は、データの終わりに達しており、それに応じて行動することができます。

関連する問題