Это многовато кода для контроллера. Дублирование @messages не ок, лучше проверять их статус при отображении.