Max, I have the same situation and model it like this:
class Article... has_and_belongs_to_many :related_articles, :class_name => "Article", :join_table => "related_articles", :association_foreign_key => "related_article_id", :foreign_key => "article_id"
The related_articles table just has article_id and related_article_id (no id column required)
Regards,
--Kip