你是如何建立这种关联的?

时间:2011-05-28 04:13:16

标签: ruby-on-rails ruby ruby-on-rails-3 associations

我想要一个“小组”有很多成员。我已经有了用户和个人资料模型,如果用户将自己标识为“组”,我希望它能够列出其成员。因此,我正在考虑让个人资料has_many :members, :class_name => 'User',以便“群组”可以选择现有用户。但是,我还想让一个组列表成员不是现有用户。我该如何建立这种关联?我这样做了吗?

2 个答案:

答案 0 :(得分:0)

“让群组列出不是现有用户的成员” - 您的意思是“让群组列表用户不存在成员”?

如果是这样,那么我回答的这个答案可能有所帮助:How to find all items not related to another model - Rails 3

答案 1 :(得分:0)

在用户模型中尝试使用此lambda:

named_scope :not_members, lambda { |profile_id| where("id NOT IN (?)", 
                                   User.where( :profile_id => profile_id ).map(&:id) ) }

稍后在您的代码中:

@not_members = User.not_members(some_profile_id)

PS:未经测试