我有一个名为Notification
的模型,并继承了模型VoteNotification
和CommentNotification
。我正在构建一个summarize
功能,它会接收最后50个通知,并根据相似性压缩它们。我的代码使用了很多.where
语句来缩小我在不同点上的需求。
执行current_user.notifications.last(50)
会返回一个数组
执行current_user.notifications
会返回ActiveRecord_Associations_CollectionProxy,这是.summarize
实际执行的理想数据类型
我的问题是,有没有办法获取CollectionProxy,同时还将我的初始查询范围限制为最近50个通知?
谢谢!
答案 0 :(得分:1)
不,你不能使用.last
,但你绝对可以获得最后一次"记录为集合代理:
current_user.notifications.order('id desc').limit(1)
或者
current_user.notifications.order('created_at desc').limit(1)