我有photos
和categories
表以及以下模型:
class Category < ActiveRecord::Base
has_and_belongs_to_many :photos
end
class Photo < ActiveRecord::Base
has_and_belongs_to_many :categories
end
现在,对于尚未属于某个类别的照片,语法应如何?
在SQL中我会这样做:
SELECT * FROM photos WHERE id NOT IN (SELECT photo_id FROM categories_photos);
在Rails 2.3.10
应用程序中使用ActiveRecord HABTM执行此操作的方法是什么
答案 0 :(得分:0)
我没有测试过这个。但我想你的照片模型看起来会像这样(作为一个named_scoped)。
named_scope :with_no_category, :conditions => ["photos.id NOT IN (SELECT photo_id FROM categories_photos);"]
然后你可以拨打Photo.with_no_category
希望它有所帮助。