2012-02-14 77 views
0

我有photoscategories表及以下车型:如何获得非关联的项目


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应用

回答

0

我没有测试这个要做到这一点使用ActiveRecord HABTM。但我可以想象它会在你的Photo模型中看起来像这样(作为named_scoped)。

named_scope :with_no_category, :conditions => ["photos.id NOT IN (SELECT photo_id FROM categories_photos);"] 

然后就可以调用Photo.with_no_category

希望它能帮助。