2011-10-12 9 views
12

Co to jest interfejs API, aby uzyskać dostęp do domyślnego komunikatu o błędzie Rails can't be blank, gdy sprawdzanie poprawności :presence => true kończy się niepowodzeniem?Jak uzyskać dostęp do komunikatu o błędzie "Nie może być pusty" w Railsach?

mam konfiguracja modelu tak:

class TextDocument < Document 
    validate :content_not_blank # 'content' is an attribute 

    private 
    def content_not_blank 
     if content.blank? 
     errors.add(:content, ....?) # I want to access 'can't be blank' 
     end 
    end 
end 

Odpowiedz

21

I18n.t('errors.messages.blank')

powinien dać ci to, co chcesz.

+0

Jak tłumaczymy te domyślne wiadomości. Mam na myśli wiele domyślnych wiadomości i chcę je utworzyć dla ex ru.yml – yerassyl

20

Zakładając, że używasz standardowego tłumaczenia yaml można znaleźć plik w ActiveModel

Aby zastąpić go chcesz upuścić plik w config/locales folder np:

en: 
    errors: 
    messages: 
     blank: "can't be whatever your custom message" 
0

można tylko zrobić to z metody domyślnej tak:

validates_presence_of(:content) 

To wygeneruje odpowiedni komunikat (nie może być puste) w obecnym lokalny (Jeśli konfiguracja config/locales/plików ..yml

jeśli naprawdę chcesz napisać własny walidator

errors.add(:content, I18n.translate(:blank)) 
Powiązane problemy