我有以下型号:
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查询。
我该如何解决?
最佳答案
这是您需要的吗?
girl.photos.where.not(info: nil)