I'm wondering why the has_many :through? Your join model has no extra
attributes at all. Why not just
Message belongs_to :sender has_and_belongs_to_many :recipients
User has_many :sent_messages, :class_name => 'Message' has_and_belongs_to_many :received_messages, :class_name => 'Message'
This gives you all the scenarios you desired and appears to be much
simpler than the path you are currently going down. I'd love to hear
other options using has_many :through with more attributes on the
join model.
-Michael http://javathehutt.blogspot.com