我有以下型号:

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查询。

我该如何解决?
mysql - Rails自定义包含在多表关系中-LMLPHP

最佳答案

这是您需要的吗?

girl.photos.where.not(info: nil)

09-25 18:39