我怎样才能翻译ActiveRecord模型类名?

当我有一个实例的时候,获取ActiveRecord模型类的名字的最简单的方法是什么?

例如 – 我有这样的模型类:

class Category < ActiveRecord::Base ... end 

我有一个类的实例:

 category = Category.first 

我有YAML文件config/locales/cs.yml

 cs: activerecord: models: category: Kategorie 

我需要做这个dynamic的事情,即使我以前不知道我将要处理的是什么模型类的实例。 所以我不想明确指定“activerecord.models.category”。

是否有捷径可寻? 我知道,我可以做这样的事情

 "activerecord.models.#{category.class.name.underscore}" 

但是必须有更好的方法来做到这一点。

看到:

http://api.rubyonrails.org/classes/ActiveModel/Naming.html http://guides.rubyonrails.org/i18n.html#translations-for-active-record-models

所以,例如,在AR类中使用:

 Person.model_name.human 

或来自AR实例:

 person.class.model_name.human 

签出常量化和分类 。