has_many :through & << & STI

I've got a pretty crazy has_many :through going.

My join table is set up like this:
# Table name: memberships