这似乎相当简单,但我无法让它在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