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?