我有嵌套模型(使用PostgresSQL)
class User
has_many :pages
end
class Page
has_many :details
belongs_to :user
end
class Detail
belongs_to :page
#It has a column named "count"
end
我需要说的是 id = 1的用户,它有许多页面,其中ids = 1,2,3。 带有ID(1,2,3)的这些页面有很多细节。 我需要的是获取每个页面的最新细节,并获得名为" count"从这些最新细节
我现在正在做的是
page_ids = current_user.pages.pluck(:id)
last_followers = Detail.select("DISTINCT ON(page_id) *").where(page_id: page_ids).order("page_id, created_at DESC")
last_followers.each { |detail| last_sum += detail.counts }
但找到page_ids看起来并不合适,而不是循环查看所有这些内容。
是否有单一查询的直接方式,谢谢
答案 0 :(得分:1)
不完全确定你的要求,但尝试一下:
sum = current_user.pages.map { |page| page.details.last.counts }.sum