Did I model this right?

I'm trying to build a little Secret Santa application. A User can join various Secret Santa Groups. In the Group, the User can post suggestions for other members of that group. In the Group, the User can also specify a Relation (someone they don't want to be assigned to be a Secret Santa for)

Here's what I've got so far:

class User < ActiveRecord::Base   has_many :memberships   has_many :groups, :through => :memberships end

class Group < ActiveRecord::Base   has_many :memberships   has_many :users, :through => :memberships end

class Membership < ActiveRecord::Base   belongs_to :user   belongs_to :group   has_many :suggestions   has_and_belongs_to_many :relations,     :class_name => "Membership",     :join_table => "relations_memberships",     :association_foreign_key => "relation_id",     :foreign_key => "membership_id" end

class Suggestion < ActiveRecord::Base   belongs_to :membership end

Am I approaching this correctly?