class User
:has_many :domains, :through => :domain_coordinators
:has_many :regions, :through => :regional_coordinators
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 :users, :through => :domain_coordinators
:belongs_to :region
def coordinators
self.users
end
end

class Region
:has_many :domains
:has_many :users, :through => :regional_coordinators
def coordinators
self.users
end
end