这是我的联想:
class User < ActiveRecord::Base
has_many :tickets
end
class Ticket < ActiveRecord::Base
belongs_to :user
end
非常简单。我想要一个 User
模型的范围,它返回所有具有完全零关联票证的用户。
目前我大部分时间都在使用 Ruby 来做这件事:
def self.never_flown
results = []
find_each do |user|
results << user if user.tickets.count == 0
end
results
end
... 这很糟糕,因为这不是 Ruby 的好用例。但我正在努力弄清楚如何使用 SQL 执行此操作。
谁能告诉我一个好的、干净的 SQL 解决方案?!
最佳答案
可能是这样的:User.includes(:tickets).where(tickets: {user_id: nil})
在一个范围内它会像 :without_tickets, -> { includes(:tickets).where(tickets: {user_id: nil}) }
关于sql - rails : get parent records having ZERO has_many associations,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25792899/