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
I'm not entirely sure that this works, but it's more likely to.