has_many :through

has_many (along with a belongs_to in the other class) if for a 1-n
relation, but you are modelling an n-m relation.

class Company < ActiveRecord::Base
   has_and_belongs_to_many :clients, :class_name => "Company",
:join_table => :company_clients
   has_and_belongs_to_many :suppliers, :class_name => "Company",
:join_table => :company_suppliers
end

I'm not entirely sure that this works, but it's more likely to.