rails habtm with join model - 如何查找未链接的记录?

时间:2012-01-03 11:37:08

标签: ruby-on-rails-3.1 has-and-belongs-to-many

我使用代表连接的模型实现了habtm关系(因为连接具有属性):

class Person
  has_many :person_photos
end

class PersonPhoto
  # has a person and a photo id, and a couple of 
  # other attributes that aren't relevant
end

class Photo
  has_many :person_photos
end

我想在Photo类中添加一个方法,以获取该照片中的人员列表。对于我的生活,我无法弄清楚。这很容易吗?

2 个答案:

答案 0 :(得分:1)

在照片模型中尝试一下......

def people_not_tagged
    People.where("id NOT IN (?)", people_ids.empty? ? "" : people_ids)
end

答案 1 :(得分:0)

您可以尝试通过person_photos拍摄人物has_many照片,并通过person_photos尝试照片has_many人。

has_many through

的Rails文档

然后photo.find(1)。人们会列出照片1中的所有人

然后使用数组减法people_not_in_photo = People.all - photo.find(1)。我想,人们会给你你想要的东西。

subtracting arrays

上的Stackoverflow问题