Сообщения об ошибках after_validation в Rails 4 Generic 'is invalid'

Как удалить типовые сообщения об ошибках в Rails 4?

Например, если у меня есть клиентская модель с именем и паролем в качестве атрибутов, я бы получил:

Client name can not be blank
Client password can not be blank
Client is Invalid

Клиент недействителен, на самом деле не нужен, но я не могу от них избавиться.

Я пробовал различные предложения отсюда:

Rails: избавление от универсального X - недопустимые ошибки проверки < / а>

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

Любые идеи?

Спасибо


person Ralph King    schedule 06.06.2014    source источник
comment
Когда вы их видите - это когда вы вызываете определенный помощник, чтобы вывести список сообщений об ошибках?   -  person Max Williams    schedule 06.06.2014


Ответы (1)


Лучший способ изменить встроенный текст rails - использовать языковые правила для конкретной локали, то есть ваш config/locales/en.yml файл.

Иногда бывает сложно найти путь к нужному тексту. Вот пример из проекта, в котором я сделал это некоторое время назад. Это проект rails2, поэтому с тех пор структура клавиш могла измениться.

#in config/locales/en.yml
en:
  activerecord:
    errors:
      full_messages:
        format: "{{message}}"    
      #define standard error messages, which we can overide on per model/per attribute basis further down
      messages:
        record_invalid: "Validation failed: {{errors}}"    
      models:
        user_session:
          blank: "{{attribute}} can not be blank"
          attributes:
            login:
              invalid: "Please enter your user name"   
            password:
              invalid: "Please note that passwords are case sensitive"  
        user:
          blank: "{{attribute}} can not be blank"
          attributes:
            login:
              invalid: "User Name can only contain letters and numbers and -, @, . or _ symbols"   
              available: username available
              unavailable: username already taken  

РЕДАКТИРОВАТЬ: ссылки в этом разделе документации i18n показывают, что рельсы встроены в структуру en.yml, поэтому для внесения изменений вы можете скопировать встроенную в свой собственный en.yml и удалить все, кроме битов, которые вы изменили (для ясности).

http://guides.rubyonrails.org/i18n.html#configure-the-i18n-module

person Max Williams    schedule 06.06.2014
comment
Мне удалось правильно изменить текст в сообщениях об ошибках, которые я хочу, мне просто нужно полностью удалить общие ошибки проверки. Спасибо хоть - person Ralph King; 06.06.2014
comment
ах, я вижу - извините. Вы добавили, что я использую локали, чтобы создавать сообщения об ошибках, которые я хочу сказать правильный текст вашего вопроса после публикации, или я просто не заметил? - person Max Williams; 06.06.2014
comment
Вы его пропустили - правда, я написал это в забавном месте! Я все равно решил проблему, вставив сообщения об ошибках в строку, они автоматически не отображают общее. Ваше здоровье - person Ralph King; 06.06.2014