想象一下,我有一个具有许多附件的Ticket模型。在票模型中,我有:
has_many :attachment, dependent: :destroy, class_name: 'Ticket::Attachment'
现在我需要从具有一个或多个附件的数据库故障单中读取(故障单也可以没有附件)。
我发现我可以“浏览”所有票证并检查是否attachment.empty?
但是效率不高,因为在开始时我从db读取所有票证。我想从db中读取那些有>的记录。此活动记录查询中有0个附件。怎么做?
答案 0 :(得分:2)
以下内容应仅为您提供附件附件的门票:
Ticket.joins(:attachments).group("tickets.id")
它将在2个表之间执行内部联接,只返回两个表中存在的行,然后按Ticket.id
对它们进行分组,以便获得唯一票证行。