Документация для generate_full_message может быть полезна:
Формат full_message по умолчанию для любой локали - "{{attribute}} {{message}}
". Можно указать специфичный для локали формат full_message по умолчанию, сохранив его как перевод для ключа: "activerecord.errors.full_messages.format
".
Кроме того, можно указать формат сообщения об ошибке для конкретной проверки, сохранив перевод для: "activerecord.errors.full_messages.[message_key]
". Например. формат full_message для любой проверки, которая использует: blank в качестве ключа сообщения (например, validates_presence_of), может быть сохранен в: "activerecord.errors.full_messages.blank
".
Поскольку ключ сообщения, используемый валидацией, может быть перезаписан на макроуровне класса validates_ *, можно настроить формат full_message для любой конкретной валидации:
# app/models/article.rb
class Article < ActiveRecord::Base
validates_presence_of :title, :message => :"title.blank"
end
# config/locales/en.yml
en:
activerecord:
errors:
full_messages:
title:
blank: This title is screwed!
В вашем случае, поскольку вы используете формат {{attribute}} {{message}}
по умолчанию, вы получаете «Электронная почта» для атрибута и «Ваш электронный адрес недействителен» в качестве сообщения. Вы можете изменить аргумент :message
на «Неправильный формат», и вы должны получить «Email не является допустимым форматом». Это быстрое решение. Если вы хотите полностью настроить его, вы можете использовать метод локали выше.