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

定数化と分類を確認してください。

于 2012-07-20T17:56:32.253 に答える