2011-10-12 11 views
12

¿Cuál es la API para acceder al mensaje de error can't be blank predeterminado de Rails cuando falla la validación :presence => true?¿Cómo acceder al mensaje de error "no puede estar en blanco" de Rails?

que tienen la configuración modelo así:

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 

Respuesta

21

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

debería darle lo que quiere.

+0

cómo traducimos estos mensajes predeterminados. Quiero decir que hay muchos mensajes predeterminados, y quiero crear para ex ru.yml para ellos – yerassyl

20

Suponiendo que está usando traducciones YAML estándar, se puede encontrar el archivo en ActiveModel

Para anularlo que le suelta un archivo en su config/locales carpeta, por ejemplo:

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

Sólo puede hacerlo con el método predeterminado de esta manera:

validates_presence_of(:content) 

Esto generará el mensaje correcto (no puede estar en blanco) en la corriente local (si la configuración de su config/locales/archivos ..yml

si realmente quiere escribir su propio validador

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