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.