Rails 4 after_validation Съобщения за грешка 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 структура на rails, така че за да направите промени, можете да копирате вградената във вашия собствен 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