我有两个模型 - Topic和ContentItems。
主题has_many content_items,但可以在没有任何预先存在的content_items的情况下创建主题。
有没有人知道如何在不使用计数器缓存的情况下选择至少包含一个content_item的所有主题?
目前我正在做类似的事情:
Topic.joins(:content_items).uniq
但是它在内存中处理它,所以如果我不能链接一个限制或订单,即我不能做
Topic.joins(:content_items).uniq.limit(10).order("created_at DESC")
计数器缓存是一个可能的长期选择,但它比我现在想做的更大一点,除非没有更好的解决方案。
全部谢谢
答案 0 :(得分:3)
你可以试试这个
Topic.joins(:content_items).select("DISTINCT topics.*")
OR
Topic.include(:content_items).where("content_items.id IS NULL")