has_many :through failing to save changes

Adding to has_many :through via << works for me in Edge rails. There is a problem with self-referential relationships, for which I have filed a patch:

http://dev.rubyonrails.org/ticket/6744

Have a look if that helps you.

Cheers, Max