我可以使用.last并同时获取ActiveRecord_Associations_CollectionProxy吗?

时间:2014-09-11 18:49:18

标签: ruby-on-rails activerecord

我有一个名为Notification的模型,并继承了模型VoteNotificationCommentNotification。我正在构建一个summarize功能,它会接收最后50个通知,并根据相似性压缩它们。我的代码使用了很多.where语句来缩小我在不同点上的需求。

执行current_user.notifications.last(50)会返回一个数组

执行current_user.notifications会返回ActiveRecord_Associations_CollectionProxy,这是.summarize实际执行的理想数据类型

我的问题是,有没有办法获取CollectionProxy,同时还将我的初始查询范围限制为最近50个通知?

谢谢!

1 个答案:

答案 0 :(得分:1)

不,你不能使用.last,但你绝对可以获得最后一次"记录为集合代理:

current_user.notifications.order('id desc').limit(1)

或者

current_user.notifications.order('created_at desc').limit(1)