46

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

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

class Category < ActiveRecord::Base
  ...
end

我有一个类的实例:

category = Category.first

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

cs:
  activerecord:
    models:
      category: Kategorie

而且我需要动态地执行此操作,即使我以前不知道我将处理什么模型类的实例。所以我不想明确指定“activerecord.models.category”。

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

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

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

4

2 回答 2

94

看:

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
于 2012-10-24T15:10:14.647 回答
0

检查constantize分类

于 2012-07-20T17:56:32.253 回答