Исключить имя атрибута перед сообщением об ошибке

У меня есть простая интернационализация:

attributes:
  user:
    login: Login
errors:
  template:
    header: "Errors"
    body: ""
  models:
    user:
      attributes:
       login:
         taken: "The chosen {{attribute}} is already registered"

Полученное сообщение об ошибке выглядит следующим образом:

Логин Выбранный Логин уже зарегистрирован

Похоже, что Rails автоматически добавляет к сообщению об ошибке имя атрибута. Это заставляет меня упорядочивать сообщения только одним способом - с именем атрибута в качестве первого слова.

Мне нужно следующее сообщение об ошибке:

Выбранный Логин уже зарегистрирован

Как я могу настроить Rails, чтобы сообщение об ошибке не добавлялось к имени атрибута?


person AntonAL    schedule 30.07.2010    source источник
comment
Я не буду отмечать ваш вопрос как дубликат, потому что он немного отличается из-за использования интернационализации, но посмотрите мой предыдущий ответ на следующий вопрос, чтобы узнать, поможет ли это вам: удалить имя поля из сообщения проверки объекта   -  person mikej    schedule 30.07.2010
comment
На самом деле, это поможет мне, для аналогичного вопроса, который теперь не нужно будет задавать.   -  person NinjaCat    schedule 31.07.2010


Ответы (1)


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

en:
  errors:
    format: "%{message}"

По умолчанию %{attribute} %{message}.

person Mohamad    schedule 07.10.2012
comment
@MegaTux Думаю, да. Но я не уверен. - person Mohamad; 14.10.2015
comment
Я почти уверен, что ответ - нет, вы не можете. Я не смог понять это. - person Nick McD.; 22.06.2017
comment
@NickMcD. Вы можете настроить ошибки как можно более детально, это выполнимо, работать с файлом непросто, но прочитайте руководство - оно поможет. - person MageeWorld; 13.08.2017