Подтвердить что ты не робот

Как получить сообщение об ошибке Rails не может быть пустым?

Что API для доступа к сообщению об ошибке Rails по умолчанию can't be blank при завершении проверки :presence => true?

У меня есть настройка модели следующим образом:

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
4b9b3361

Ответ 1

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

должен предоставить вам то, что вы хотите.

Ответ 2

Предполагая, что вы используете стандартные переводы yaml, вы можете найти файл в ActiveModel

Чтобы переопределить его, вы должны удалить файл в своей папке config/locales, например:

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

Ответ 3

Вы можете просто сделать это с помощью метода по умолчанию:

validates_presence_of(:content)

Это приведет к созданию правильного сообщения (не может быть пустым) в текущем локальном (если вы настроите файлы config/locales/..yml

если вы действительно хотите написать свой собственный валидатор

errors.add(:content, I18n.translate(:blank))