我的Gallery
模型中有以下查询:
media_items.includes(:photo, :video).rank(:position_in_gallery)
我的Gallery
模型has_many Media Items
,每个模型都有Photo
或Video
关联。
到目前为止这个工作正常。它返回包括它们在内的所有media_items
photo
或video
关联,按position_in_gallery
的{{1}}属性排序。
但是,我现在要求将此查询返回的照片限制为仅media_item
属性为is_processing
的照片。
是否可以进行相同的查询,但返回的照片条件相当于:
nil
请注意,所有视频均应退回,且不包含.where(photo: 'photo.is_processing IS NULL')
属性。
我试过@ mudasbwa的建议:
is_processing
但它让我:
错误:缺少表格“照片”的FROM子句条目
答案 0 :(得分:7)
原来我走在正确的轨道上。我需要使用references()
:
media_items.includes(:photo, :video).where('photos.is_processing IS NULL').references(:photo).rank(:position_in_gallery)
答案 1 :(得分:0)
media_items.includes(:photo, :video).where(photos: { is_processing: nil }).rank(:position_in_gallery)