2013-06-17 4 views
2

J'ai un projet multilingue avec, disons, des locales en anglais et en russe. Je veux une telle validation:Ruby on Rails: validation en fonction des paramètres régionaux

example.com/ en/livre/new < - dans un champ de texte ici il est seulement ASCII symboles disponibles.

example.com/ ru/livre/new < - dans un champ de texte ici il est seulement cyrilliques symboles disponibles.

Quelle est la meilleure façon de le faire?

J'ai une idée d'utiliser « ... si valident ... » dans les modèles.

Mais que vais-je faire si j'ai beaucoup de modèles et que je veux ajouter juste un autre paramètre régional?

Peut-être y at-il des façons de conserver ces validations dans un seul fichier comme i18n * .yml?

Répondre

1

Vous pouvez écrire un custom validator et l'inclure dans les modèles que vous souhaitez valider

I18n.locale renverra vos paramètres régionaux

utiliser dans une déclaration case à l'intérieur de votre validateur personnalisé d'effectuer des contrôles spécifiques à la langue

case I18n.locale 
    when :en 
     # check for latin characters 
    when :ru 
     # check for cyrillic characters 
    else 
     return true 
    end 
Questions connexes