class User
:has_many :domains, :through => :domain_coordinators
:has_many :regions, :through => :regional_coordinators

:belongs_to :domain
:belongs_to :region

def domains_responsible_for
self.domains
end

def regions_responsible_for
self.regions # Not very fast code... but will work
end

end

class DomainCoordinator
:belongs_to :user
:belongs_to :domain
end

class RegionalCoordinator
:belongs_to :user
:belongs_to :region
end


class Domain
:has_many :coordinators, :through => :domain_coordinators, :source => :users
:has_many :users

:belongs_to :region

def coordinators
self.coordinators
end

def users
self.users
end

end

class Region
:has_many :coordinators, :through => :regional_coordinators, :source => :users
:has_many :users

:has_many :domains

def coordinators
self.coordinators
end

def users
self.users
end

end