I'd probably add an Inbox model that belongs_to messages with a column
for the user_id and read_state
Then do a current_user.inbox.messages for your index find, and use
group_by in the view to divide them up by state.
This way a message can be 'delivered' to multiple people with
different states. A user deleteing a message removes it from his
inbox. Then periodically purge all orphaned messages... (just thinking
out loud here)