Ruby on rails 查询以查找关联不包含特定属性的实例

Ruby on rails 查询以查找关联不包含特定属性的实例,ruby-on-rails,postgresql,activerecord,Ruby On Rails,Postgresql,Activerecord,我正试图找到一个能捕捉跑步者未注册的所有事件的范围 发生.rb class Happening < ActiveRecord::Base has_many :registrations end 但是,如果有另一个跑步者注册了,这个查询仍然会捕获目标跑步者注册的事件,对吗?例如,跑步者约翰登记参加纽约马拉松比赛,所以我不想让纽约马拉松比赛出现。但是如果跑步者弗雷德注册参加纽约马拉松比赛,那么根据我的查询,纽约马拉松比赛仍然会出现,因为现在纽约马拉松比赛的注册人不是约翰 我如何让

我正试图找到一个能捕捉跑步者未注册的所有事件的范围

发生.rb

class Happening < ActiveRecord::Base    
  has_many :registrations
end
但是,如果有另一个跑步者注册了,这个查询仍然会捕获目标跑步者注册的事件,对吗?例如,跑步者约翰登记参加纽约马拉松比赛,所以我不想让纽约马拉松比赛出现。但是如果跑步者弗雷德注册参加纽约马拉松比赛,那么根据我的查询,纽约马拉松比赛仍然会出现,因为现在纽约马拉松比赛的注册人不是约翰

我如何让查询忽略从特定跑步者处注册的任何事件

class Registration < ActiveRecord::Base    
  belongs_to :happening
  belongs_to :runner
end
scope :runner_not_signed_up, -> (runner) { left_joins(:registrations).where.not("registrations.runner_id = ?", runner.id) }