Luk*_*oda 44 activerecord ruby-on-rails internationalization
当我有一个实例时,获取ActiveRecord模型类的翻译名称的最简单方法是什么?
例如 - 我有这样的模型类:
class Category < ActiveRecord::Base
...
end
Run Code Online (Sandbox Code Playgroud)
我有一个类的实例:
category = Category.first
Run Code Online (Sandbox Code Playgroud)
我有YAML文件config/locales/cs.yml
:
cs:
activerecord:
models:
category: Kategorie
Run Code Online (Sandbox Code Playgroud)
我需要动态地做这个,即使我以前不知道我将要处理的模型类实例.所以我不想明确指定"activerecord.models.category".
是否有捷径可寻?我知道,我可以做这样的事情
"activerecord.models.#{category.class.name.underscore}"
Run Code Online (Sandbox Code Playgroud)
但必须有更好的方法来做到这一点.
Jo *_*o P 87
看到:
http://api.rubyonrails.org/classes/ActiveModel/Naming.html http://guides.rubyonrails.org/i18n.html#translations-for-active-record-models
因此,例如,在AR类上使用:
Person.model_name.human
Run Code Online (Sandbox Code Playgroud)
或者来自AR实例:
person.class.model_name.human
Run Code Online (Sandbox Code Playgroud)