我在Rails应用程序中构建一些复杂查询时遇到问题。我有三种模式:
class Partner < ActiveRecord::Base
belongs_to :rental_company
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :validatable, :confirmable
end
class RentalCompany < ActiveRecord::Base
has_many :owners, class_name: 'Partner'
has_many :cars
end
class Car < ActiveRecord::Base
belongs_to :rental_company
end
合作伙伴对象的方法是“已确认?”从设计。现在我想找到汽车租赁公司合作伙伴确认的所有汽车?是真的。我怎么能这样做?
答案 0 :(得分:2)
这应该有效:
Car.joins(rental_company: :owners).where('partners.confirmed_at IS NOT NULL')
根据this,设计Confirmable
模块将confirmed_at
列设置为当前时间。因此,找到partners
除confirmed_at
之外的NULL
值的记录应该足够了。