我有这样的关联:
class Ship < ApplicationRecord
has_many :captain_profiles
has_many :captains, through: :captain_profiles
end
class CaptainProfile < ApplicationRecord
belongs_to :captain
belongs_to :ship
end
class Captain < ApplicationRecord
has_one :captain_profile
has_many :schedules
end
class Schedule < ApplicationRecord
belongs_to :captain
end
我需要准备好要出海的所有船只清单。换句话说,我必须找到所有至少有一名船长且船长至少有一张的船。
我考虑过合并两个内部联接,因为我需要具有船长和时间表的Ships。
我尝试了Captain.includes(:schedules).where("schedule.id IS NOT NULL")
,但在Ships上也尝试过,但是它不起作用。有人可以解释一下我在做什么错,我该怎么做?
答案 0 :(得分:1)
只需使用joins
即可生成INNER JOIN
。
Ship.joins(captains: :schedules)