1. ホーム
  2. sql

[解決済み] Rails find record with zero has_many records associated [duplicate].

2022-11-22 11:39:30

質問

これはかなり簡単なようですが、Googleで表示させることができません。

もしあれば

class City < ActiveRecord::Base
  has_many :photos
end

class Photo < ActiveRecord::Base
  belongs_to :city
end

写真のない都市をすべて見つけたい。というような呼び方ができるといいんですが...。

City.where( photos.empty? )

...が、これは存在しない。では、このようなクエリはどうやるのでしょうか?


更新しました。 元の質問に対する答えを見つけたので、私は興味があります、あなたはどのように逆を構築するのですか?

IE: もし私がこれらをスコープとして作成したい場合。

scope :without_photos, includes(:photos).where( :photos => {:city_id=>nil} )
scope :with_photos, ???

どのように解決するのですか?

ここで見つけました。 https://stackoverflow.com/a/5570221/417872

City.includes(:photos).where(photos: { city_id: nil })