2017-02-07 4 views
0

で入れ子になったクラスでhuman_attribute_name`を使用して、私はクラスを持っている:`モジュール

module Import 
    class Log < ActiveRecord::Base 
    end 
end 

私はImport::Log.human_attribute_name(:results)を使用したいと思います。 は、私はすでに、これは(メソッドで)呼び出し

I18n.translate('activerecord.attributes.import/log.results', {:count=>1, :default=>[:"attributes.results", "Results"]}) 

で終了します。しかし、私は翻訳ファイルを作成する方法を知らないことがわかりました。 はYML

cs: 
    activerecord: 
    attributes: 
     import/log: 
     results: "Výsledky běhu" 

{ 
    cs: { 
    activerecord: { 
     attributes: { 
     'import\/log': { 
      results: "Výsledky běhu" 
     } 
     } 
    } 
    } 
} 

何も動作しようとしたルビーのハッシュをしようとしました。

+1

YAMLが正しいようです。そのリクエストまたはirbセッションの現在のロケールが確かに 'cs'ですか?また、それが新しいロケールファイルであり、Webリクエストを通じてこれをテストしている場合、railsは各リクエストの前に新しい翻訳ファイルを取得しないので、サーバを再起動することを忘れないでください。 –

+0

はい、ロケールは 'cs'です(非ar.attributesの翻訳は正しく表示されます)。そして古いロケールファイルであってもサーバを再起動しました。 – Foton

+0

activerecordのキーが別の翻訳ファイルに存在する変更はありますか? I18nはYAMLキーをマージしないので、別のものがあればこのキーを上書きすることができ、これらの属性は考慮されていません。 –

答えて

0

私はどこか間違えました。 @Alexandersのコメントの後、私は最初から声をかけてみよう! Yamlのバージョンimport/log:が動作します。

おそらく私はサーバーを再起動せずに新しいファイルで最初のYamlの翻訳を試みた後、capybaraテストを通して他の(今は間違った)バージョンをチェックします。

アレクサンダー、ありがとうございました。

関連する問題