How do you set up this association?
I want a "group" to hav开发者_开发知识库e many members. I already have a user and a profile model, and if a user identifies itself as a "group", I want it to be able to list its members. Therefore, I'm thinking of letting a profile has_many :members, :class_name => 'User'
so that a "group" can select existing users. However, I also want to let a group list members that are not existing users. How would I set up this association? Am I doing this correctly?
"let a group list members that are not existing users" -- do you mean "let a group list users that are not existing members"?
If so, then this answer I gave a while back might help: How to find all items not related to another model - Rails 3
Try with this lambda in your User model:
named_scope :not_members, lambda { |profile_id| where("id NOT IN (?)",
User.where( :profile_id => profile_id ).map(&:id) ) }
later in your code:
@not_members = User.not_members(some_profile_id)
PS: This is not tested
精彩评论