【发布时间】:2018-08-30 04:35:40
【问题描述】:
我的父对象有两个子对象。
它们每个都有 updated_at 和viewed_at 时间戳。
即具有一些 has_many/belongs_to 关联的人对象
Books: updated_at, viewed_at
Videos: updated_at, viewed_at
我想要一个只获取这四次中最新一次的查询。 即
Person.getAllBooksAndVideos.pluck(:updated_at, :viewed_at).sort{|a,b| [a.updated_at, a.viewed_at].compact.max <=> [b.updated_at, b.viewed_at].compact.max}.last
我不知道如何处理getAllBooksAndVideos.pluck(:updated_at, :viewed_at) 部分,非常非常欢迎任何建议。
【问题讨论】:
-
我不确定,它是否有效,但你可以试试这个查询
Person.joins(:books, :videos).select("persons.*, GREATEST(books.updated_at , books.viewed_at) FROM books, GREATEST(videos.updated_at , videos.viewed_at) FROM videos )
标签: ruby-on-rails postgresql rails-activerecord