Message system

Не нужно такого. Я бы рекомендовал сделать так:

has_many :message_users
has_many :messages, through: :messages

inbox и outbox сделать через scope. 
scope :inbox, ->(user_id) { where(created_by: user_id) } 
Точно также и с outbox, но нужно глянуть INNER JOIN.