Comment puis-je afficher une traduction d'une base de données nom de la colonne comme un titre de tableau dans une vue, Rails 3
-
13-12-2019 - |
Question
J'ai un modèle appelé User
avec un attribut appelé current_sign_in_at
.Dans mon fr.yml fichier j'ai le nom d'affichage en tant que tel...
en-GB:
activerecord:
attributes:
user:
current_sign_in_at: "Last sign-in"
...ce qui me permet d'afficher la forme désirée de l'étiquette ("Dernière connexion") à l'aide de = f.label :current_sign_in_at
.
Mais comment puis-je utiliser cette même traduction pour un en-tête de tableau, c'est à direpas dans un formulaire?
%th= :current_sign_in_at
La solution
Vous pouvez utiliser la méthode statique "human_attribute_name", Voir la doc ici sur dock API
Dans votre cas:
%th= User.human_attribute_name :current_sign_in_at
(utilisation User.human_name
pour afficher le nom du modèle traduit avec I18n dans en.activerecord.models.user
)
Espérons que cette aide!
Autres conseils
Une autre option pour l'internationalisation de la table des en-têtes est l' table_for gem.
Cela vous permettra d'écrire du code erb comme:
<%= table_for @user do |table| %>
<% table.column :current_sign_in_at %>
<% end %>