Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何翻译ActiveRecord模型类名?_Ruby On Rails_Activerecord_Internationalization - Fatal编程技术网

Ruby on rails 如何翻译ActiveRecord模型类名?

Ruby on rails 如何翻译ActiveRecord模型类名?,ruby-on-rails,activerecord,internationalization,Ruby On Rails,Activerecord,Internationalization,当我有一个ActiveRecord模型类的实例时,最简单的方法是什么 例如,我有这样的模型类: class Category < ActiveRecord::Base ... end 我有YAML文件config/locales/cs.yml: cs: activerecord: models: category: Kategorie 我需要动态地完成这项工作,即使我以前不知道我将处理哪个模型类的实例。所以我不想显式地指定“activerecord.mode

当我有一个ActiveRecord模型类的实例时,最简单的方法是什么

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

class Category < ActiveRecord::Base
  ...
end
我有YAML文件
config/locales/cs.yml

cs:
  activerecord:
    models:
      category: Kategorie
我需要动态地完成这项工作,即使我以前不知道我将处理哪个模型类的实例。所以我不想显式地指定“activerecord.models.category”

有没有一个简单的方法可以做到这一点?我知道,我可以做这样的事

"activerecord.models.#{category.class.name.underscore}"
但必须有更好的方法来做到这一点。

请查看并查看

见:

因此,例如,在AR类中使用:

Person.model_name.human
或者从AR实例:

person.class.model_name.human
轨道5:


您可以使用
category.class.name

谢谢您的回答。但这些方法并不能解决这个问题。正如我提到的,我可以使用和构建翻译的实际“路径”。但我问,是否有某种方法可以直接转换模型实例(或模型类本身)。我发现
名称
更有用,而不是
人类
,它只添加空格和小写字母。所以:
SomePerson.model\u name.name
返回
SomePerson
这是纯Ruby<代码>'adasd'。class.name#=>“String”
person.class.model_name.human