Это меня давно беспокоило. Эта проблема возникает со всеми моими моделями, но я буду использовать одну из них, Quiz, в качестве примера.
Тест имеет следующие проверки:
validates_presence_of :size, :style
Я использую I18n, и у меня есть следующий набор в моем файле переводов: (это просто стандартные сообщения об ошибках, но я включил их в свой en.yml, чтобы было легко увидеть структуру, если я хочу переопределить их для любой конкретной модели)
activerecord:
errors:
messages:
inclusion: "{{attribute}} is not included in the list"
invalid: "{{attribute}} is invalid"
empty: "{{attribute}} can't be empty"
blank: "{{attribute}} can't be blank"
record_invalid: "Validation failed: {{errors}}"
Проблема заключается в следующем: если я сделаю новую викторину, которая не пройдет валидацию, посмотрите на quiz.errors.full_messages, каждое сообщение об ошибке имеет атрибут, а затем полное сообщение:
>> quiz = Quiz.create
=> <unsaved quiz object>
>> quiz.errors.full_messages
=> ["Size Size can't be blank", "Style Style can't be blank"]
Я не понимаю, почему сообщение, например, "Size Size can't be blank"
, а не "Size can't be blank"
Есть идеи у кого-нибудь?