Перезаписать сообщение проверки Rails - PullRequest
0 голосов
/ 27 апреля 2018

Как переписать сообщение проверки в Rails? Даже если я прохожу в процедуре, как так ..

validates :my_item, uniqueness: {
      scope: [:name, :type],
      message: -> (object, data) do
        "This item is already taken"
      end,
    }

Он все еще добавляет [объект] в начало сообщения. Итак, это гласит: "[name of the object] This item is already taken"

Edit:

Также попытался добавить ^ в начало сообщения. Все еще не работает. "^This item is already taken"

1 Ответ

0 голосов
/ 27 апреля 2018

Вместо того, чтобы пытаться переопределить его на уровне модели, просто используйте тот факт, что вы по сути пытаетесь настроить язык en.

В config/locales/en.yml вы должны быть в состоянии сделать что-то вроде этого:

en:
  activerecord:
    errors:
      messages:
        taken: "This item is already taken."
      models:
        my_item:
          taken: "This item is already taken."

Я не тестировал эту конфигурацию напрямую, но клавиша messages должна изменить сообщение для всех моделей. В противном случае вы можете указать сообщение для каждой модели. Я не верю, что это будет включать в себя имя объекта. Вы можете найти список имен полей в Руководство по интернационализации Rails .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...