這似乎相當簡單,但我無法讓它在Google上出現。Rails找到零記錄has_many記錄相關聯
如果我有:
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, ???
因爲我發現了這個問題(http://stackoverflow.com/q/5319400/417872)我想這可以被關閉。可能還有一種方法可以在谷歌上找到這種方法,這種情況很難描述,因此很難搜索。 – Andrew 2012-03-08 06:33:20
在Rails 4中,您可以使用新的'.not'方法進行反轉。 'City.includes(:photos).where.not(photos:{city_id:nil})' – 2014-12-01 22:17:12
[想要在Rails 3中查找沒有關聯記錄的記錄](https://stackoverflow.com/questions/ 5319400 /想要找到記錄與無關聯記錄在軌-3) – 2018-01-24 09:30:57