如何限制Feed中显示的帖子项数?

时间:2012-02-06 00:54:16

标签: ruby-on-rails ruby ruby-on-rails-3 model-view-controller ruby-on-rails-3.1

快速提问,我相信这很容易回答。我在PagesController中有这行代码,它显示了与用户相关的所有帖子:

@microfeed_items = Micropost.find_all_by_user_id(current_user.id)

我可以在这行代码中添加一些内容,以便只显示最近的5个帖子吗?

提前致谢!

2 个答案:

答案 0 :(得分:3)

我假设你的模型中有一个created_at属性用于调用order,如果没有,你可以按ID降序排序,假设它们是递增分配的。这应该适合你:

@microfeed_items = Micropost.where(:user_id => current_user.id).limit(5).order("created_at DESC")

有关详情,请查看ActiveRecord查询的Rails指南:http://guides.rubyonrails.org/active_record_querying.html#limit-and-offset

答案 1 :(得分:0)

如果您已正确设置UserMicropost之间的关系,则应该可以使用current_user.microposts。然后,您可以使用last方法返回最后5个帖子:

@microfeed_items = current_user.microposts.last(5)