Go to Hackademy website

Proposer une liste de valeurs avec l'i18n de rails

Martin Catty

Posté par dans la catégorie back

Proposer plusieurs options dans un select avec l’i18n

Bien souvent dans une application vous avez besoin de proposer une liste de valeurs plus ou moins fixes parmi lesquelles l’utilisateur doit faire un choix, par exemple pour choisir sa civilité.

Plutôt que d’utiliser une constante pour stocker un hash clé / valeur des options, ou maintenir un système autre, j’utilise l’i18n de rails.

Cela offre une solution très souple, voyez plutôt:

# fr.yml
gender:
  miss: "Mademoiselle"
  mrs: "Madame"
  mr: "Monsieur"

# code avec formtastic
f.input :gender, :as => :select, :collection => I18n.t("gender").map(&:reverse)

J’ai parlé d’utiliser des valeurs fixes mais vous pouvez très bien ajouter progressivement des valeurs dans votre fichier d’i18n qui seront automatiquement disponibles dans vos vues.

C’est bien entendu encore plus avantageux quand vous travaillez sur une application multilingue.

L’équipe Synbioz.

Libres d’être ensemble.

Commentaires (4) Flux RSS des commentaires

  • 19/10/2011 à 12:14

    Bob

    Super intéressant ça !

    Par contre ma connaissance de la syntaxe ruby "&:reverse" m'échappe...

  • 19/10/2011 à 12:18

    Martin Catty

    Merci Bob. Concernant le &:reverse, c'est un raccourci syntaxique, c'est comme si je faisais I18n.t("gender").map { |v| v.reverse }

  • 19/10/2011 à 12:29

    Bob

    Ok ok, c'est effectivement plus clair.

  • 08/11/2011 à 12:04

    Myre

    J'ai essayé votre solution proposé mais dans mon select affiché j'ai qu'une seule option avec toutes les options sur la même ligne, cela viendrait de ma version de Ruby REE ?

Ajouter un commentaire