Избегайте названий классов, которые заканчиваются на S, как дьявол избегает святой воды.Имя UserHasMessages - очень плохой выбор.Вы не создаете таблицу БД для проверки чего-либо.Вместо этого у вас есть модель User, модель Message и модель UserMessage.Затем, если вы хотите проверить пользовательские сообщения, вы просто создаете метод, который делает это.Ассоциация должна быть:
User has many messages through user_messages
, и вы будете получать сообщения пользователя, такие как current_user.messages.
Я настоятельно советую вам изменить свой дизайн на тот, который я описал :)