Was ist der einfachste Weg, um den Namen der ActiveRecord-Modellklasse zu übersetzen, wenn ich eine Instanz davon habe?
Zum Beispiel - Ich habe eine Modellklasse wie folgt:
class Category < ActiveRecord::Base
...
end
Ich habe eine Instanz der Klasse:
category = Category.first
Und ich habe YAML-Datei config/locales/cs.yml
:
cs:
activerecord:
models:
category: Kategorie
Und ich muss dies dynamisch tun, auch wenn ich vorher nicht weiß, mit welcher Instanz der Modellklasse ich mich beschäftigen werde. Deshalb möchte ich "activerecord.models.category" nicht explizit angeben.
Gibt es einen einfachen Weg, dies zu tun? Ich weiß, dass ich so etwas tun kann
"activerecord.models.#{category.class.name.underscore}"
Dafür muss es jedoch einen besseren Weg geben.
Sehen:
http://api.rubyonrails.org/classes/ActiveModel/Naming.htmlhttp://guides.rubyonrails.org/i18n.html#translations-for-active-record-models
Verwenden Sie zum Beispiel für eine AR-Klasse Folgendes:
Person.model_name.human
oder aus einer AR-Instanz:
person.class.model_name.human
Check out constantize und classify .
Schienen 5:
sie können category.class.name
verwenden