Wie kann ich eine Übersetzung eines Datenbankspaltennamens als Tabellenüberschrift in einer Ansicht anzeigen, Rails 3?
-
13-12-2019 - |
Frage
Ich habe ein Modell namens User
mit einem Attribut namens current_sign_in_at
.In meinem en.yml Datei Ich habe den Anzeigenamen als solchen ...
en-GB:
activerecord:
attributes:
user:
current_sign_in_at: "Last sign-in"
…wodurch ich mit „Letzte Anmeldung“ die gewünschte Formularbeschriftung anzeigen kann = f.label :current_sign_in_at
.
Aber wie kann ich dieselbe Übersetzung für einen Tabellenkopf verwenden, d. h.nicht in einer Form?
%th= :current_sign_in_at
Lösung
Sie können die statische Methode „human_attribute_name“ verwenden. Sehen Sie sich das Dokument hier im API-Dock an
In Ihrem Fall:
%th= User.human_attribute_name :current_sign_in_at
(verwenden User.human_name
um den mit I18n übersetzten Modellnamen anzuzeigen en.activerecord.models.user
)
Hoffe das hilft!
Andere Tipps
Eine weitere Option für internationalisierte Tabellenüberschriften ist die table_for gem.
Dadurch können Sie Erb-Code schreiben wie:
<%= table_for @user do |table| %>
<% table.column :current_sign_in_at %>
<% end %>