Ouverture de session

Commentaires récents

Syndication
Flux XML

Étoile pour les champs obligatoires?

Étoile pour les champs obligatoires?
Posté par Vel le Samedi, 7 Février, 2009 - 2:26pm. Développement

Bonjour c'est encore moi.
Je débute encore en rails mais j'arrive à faire des formulaires avec des modèles, la vérification des formulaires se fait d'une manière très satisfaisante, à deux détails près:

1 - j'ai beau cherché mais je ne trouve pas comment automatiser l'ajout d'une étoile rouge ou un truc qui signale que le champ en question est obligatoire (en fonction des règles dans le model.
Si c'est pas faisable je les rajouterai manuellement, ça ne m'embête pas plus que le deuxième point:

2 - J'arrive à personnaliser les message d'erreur de la validation mais j'aimerai donner des alias aux noms des champs qui sont parfois peut esthétiques

au lieu d'avoir par exemple:
datenaissance est obligatoire
un:
La date de naissance est obligatoire

Comment faire, et merci d'avance.



[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | sujet précédent | sujet suivant | envoyer par email ]

Options d'affichage des commentaires
Sélectionnez la méthode d'affichage des commentaires que vous préférez, puis cliquez sur "Sauvegarder" pour activer vos changements.

Sujet: 
Bonjour, Pour ajouter
Auteur: 
rafaelrosafu
Date: 
Sam, 07/02/2009 - 18:10

Bonjour,

Pour ajouter l'étoile automatiquement ce n'est pas très simple, if faut replacer le form_builder défaut par autre créé par vous et ajouter quelques lignes de code au ActiveRecord::Base pour trouver quels sont les champs obligatoires. J'ai le code pour faire ça, mais il faut bien expliquer. Je vais écrire un post pour cela dans mon blog et puis j'enverrai le lien.

Pour changer la message vous pouvez ajouter la traduction des champs au système. Voilà un modèle que vous pouvez utiliser dans votre fichier config/locales/fr.yml:

fr:
activerecord:
attributes:
personne:
datenaissance: "La date de naissance"
errors:
models:
personne:
attributes:
datenaissance:
blank: "est obligatoire"

La partie apès "errors:" est optionnel car Rails ira ajouter le nom du champ à la message défaut, mais vous pouvez la changer si vous voulez. Il faut ajouter des tabulations au code, bien sûr :)

Voilà un bonne référence sur le traduction des modèles:
http://iain.nl/2008/09/translating-activerecord/

Je vous recommande changer le nom du champs datenaissance pour date_naissance ou date_de_naissance, parce que les méthodes comme humanize ou pluralize utilisent la notation où le "_" est utilise pour marquer deux mots séparés.

À bientôt,
Rafael
www.rafaelrosafu.com


[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | envoyer par email ]

Sujet: 
Merci pour la réponse, je
Auteur: 
Vel
Date: 
Dim, 08/02/2009 - 12:18

Merci pour la réponse, je trouve la piste des variables locales très interessante, seulement comment dire a l'application que le langage en cours est FR ou EN ??? (ou autre ^^)

a+


[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | envoyer par email ]

Sujet: 
Form avec étoiles
Auteur: 
rafaelrosafu
Date: 
Dim, 08/02/2009 - 21:28

Bonjour,

J'ai écrit le post sur le FormBuilder custom, vous pouvez lui lire dans:

http://rafaelrosafu.com/2009/2/8/custom-formbuilder-comme-ajouter-des-tag-pour-les-champs-obligatoires-automatiquement

Peut-être ça pourra vous aider.

À bientôt,
Rafael
www.rafaelrosafu.com


[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | envoyer par email ]

Sujet: 
Langue selécionée
Auteur: 
rafaelrosafu
Date: 
Dim, 08/02/2009 - 17:31

Bonjour,

Rails I18n, le module responsable pour faire la traduction des messages, a un propriété qui s'appelle "locale", qui garde la langue actuel. Vous pouvez vérifier comme ça marche avec le console:


script/console
Loading development environment (Rails 2.2.2)
>> I18n.locale
=> :en

Vous pouvez accéder cette propriété et tout l'objet I18n dans vos controllers sans problème.

Cette langue est initialisée, par défaut comme ":en", mais vous pouvez changer ça dans le fichier "config/enviroment.rb", cherchez pour "config.i18n.default_locale" et suivez les instructions pour changer la langue.

À chaque langue que vous avez besoin, vous devez ajouter un fichier YAML au dossier "config/locales", par exemple, pour ajouter le français, vous devez créer le fichier "fr.yml", et mettre tous les traductions dans ce fichier. Ce comportement est configurable, mais le défaut marche comme ça.

Voilà la bonne référence sur traduction avec I18n:
http://rails-i18n.org/wiki

Je suis en train d'écrire le post sur custom FormBuilder, je vous avertirai quand il est prêt.

À bientôt,
Rafael
www.rafaelrosafu.com


[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | envoyer par email ]

Sujet: 
ActiveRecord::Errors
Auteur: 
jasperiel
Date: 
Sam, 07/02/2009 - 16:25

Salut,

normalement si tu utilises les versions par défaut "validates_..._of", et des formulaires (errors_messages_for et form_for etc...) tu devrais avoir les bords rouges et les messages d'erreur comme il faut.

Si tu le fais dans la méthode validate, c'est sûr, il ne peut pas deviner. Tu peux alors utiliser
errors.add(attribute, message = nil, options = {}) sur un champ, ou add_to_base(msg) si ton erreur n'est liée à aucun champ particulier.

Pour ce qui est de changer les messages, je ne m'y suis pas intéressé depuis longtemps, mais il semble qu'il y a des indices dans la doc de la méthode generate_message. Tu auras sûrement encore plus de succès en cherchant sur Google comment font les gens pour internationaliser ces messages.

Tu trouveras toute la référence ici :
http://api.rubyonrails.org/classes/ActiveRecord/Errors.html


[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | envoyer par email ]

Nouveaux liens

Qui est en ligne
Il y a actuellement 1 utilisateur et 36 invités en ligne.

railsfrance.org - communauté francophone des utilisateurs de Ruby on Rails
[ Propulsé par Drupal ]