如果没有结果,活动Feed的分页将使用新条件

时间:2017-08-16 22:41:37

标签: ruby-on-rails pagination kaminari

我正在构建一个活动Feed,向您展示您的朋友一直在做什么。我可以使用以下查询对朋友数据进行分页:

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

我想添加逻辑,以便在您的朋友没有更多内容时使用二级连接数据,然后使用所有公共活动。有没有直接的方法来做到这一点?

我正在考虑的方法是添加一个变量,说明当前页面是指friends还是friends_of_friends还是everyone,然后使用正确的方式更新查询friend_ids并将排除以前的朋友ID。

有更简单的解决方案吗?或者您可以指向我的代码解决了在没有找到分页结果的情况下冒出活动Feed结果的问题?

1 个答案:

答案 0 :(得分:1)

Kaminari的默认记录per_page为25,因此您可以使用它来查找最后一页的编号,并有条件地使用它来提取其他数据。

另一种选择可能是确保@activities长度为25(或者每页的最大记录数是多少)。如果它更少,你知道你已经达到了数据的末尾,你可以采取相应的行动。