我有以下型号:
class Girl < User
has_many :photos, dependent: :destroy
has_one :info, :dependent => :destroy
end
class Photo < ActiveRecord::Base
belongs_to :girl
end
class Info < ActiveRecord::Base
belongs_to :girl
end
我必须使用照片进行查询,而且我还需要获取有关该女孩的信息,并且我希望为那些拥有的女孩提供负载信息(并非所有女孩都必须拥有它)。
我想要类似于Photo.joins(:girl).includes(:info)
的东西,但是当我尝试这样做时,它(显然)会尝试将信息与照片表相关联,从而导致此错误:
ActiveRecord::AssociationNotFoundError: Association named 'info' was not found on Photo; perhaps you misspelled it?
如何在多表查询中进行此自定义包含?
修改
我认为我使用Photo.joins(:girl).includes(:girl => :ad_info).where("photos.approved = 1 and users.profile_approved = 1")
解决了这个问题
但是当我检查控制台时,我有很多不应该有的ad_info查询。
答案 0 :(得分:0)
这是你需要的吗?
girl.photos.where.not(info: nil)