Хорошо, я знаю, что этот вопрос был явно опубликован для Rails 3.x полтора года назад, но сейчас в Rails 4.x, похоже, есть тот самый метод, который вы хотели, full_messages_for
.
user.errors.full_messages_for(:user_login) #=> return an array
# if you want the first message of all the errors a specific attribute gets,
user.errors.full_messages_for(:user_login).first
# or
user.errors.full_messages_for(:user_login)[0]
Это менее многословно, чем ранее использованное user.errors.full_message(:user_login, user.errors[:user_login].first)
.