MaksimSa
@MaksimSa
Ломаю стены

Как мне не писать @entity.errors.add и при этом выводить правильные сообщения об ошибках из локали?

Моя задача вывести сообщения ошибок валидации в форме.
Я могу в контроллере и модели написать свои значения ошибок, тогда проблем нет.

Например: @entity.errors.add :email, t('mongoid.errors.models.modern.entity.attributes.email.invalid') выдает сообщение с локали, но еще и пишет через точку с запятой 'is valid'

Я хочу сделать это через локаль без дублирования.
Вместо active record в локали у меня стоит mongoid.

И если я пишу в контроллере @entity.errors.add :email, :invali.
То он жалуется, что локали: en.mongoid.errors.models.modern/entity.attributes.email.invali нет.
Тут все верно, такой локали нет.

Но есть локаль en.mongoid.errors.models.modern/entity.attributes.email.invalid
И есть значение: 'Ivalid format email'.
Но он уже пишет не это значение, а значение 'is invalid', которое никак не совпадает с моим custom значением в локали.

По хорошему у меня не должно быть строки @entity.errors.add :email, :invalid
Сообщения должны выводиться во вьюхе без этих записей в контроллере.
Но почему-то они не берут те значения из локали, а пишут 'is invalid'.
Локали и контроллер находятся в Engine Modern.

Вопрос:
Как мне не писать @entity.errors.add с параметрам и при этом выводить правильные сообщения об ошибках из локали?

Yml валидный в locales

Мои предположения:
Это может быть из-за Engine
Это может из-за render action: :new
  • Вопрос задан
  • 155 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы