2011-01-23 3 views
1

アクティブレコードエラーメッセージでhuman_readable名を 'Search'にしたいQueryクラスがあります。どのようにactiverecordのローカリゼーションツリーがこのケースを探しますか?エラーメッセージでアクティブレコードモデル名をローカライズ

私が試した:

en: 
    activerecord: 
    models: 
     query: "Search" 
    errors: 
     models: 
     query: 
      attributes: 
      name: 
       unique_within_scope: "blah blah" 

をし、属性のものが経由して動作します:モデルに

errors.add(:name, I18n.t('activerecord.errors.models.query.attributes.name.unique_within_scope')) 

「検索失敗保存: 何とか何とか」

の代わり:

「クエリが失敗したセーブ: 何とか何とか」を

unique_within_scopeはにつながるためしかし、私はエラーメッセージの翻訳を期待していました

と同じです。

助けてください。ありがとう!

答えて

1

実際には機能しましたが、サーバを再起動するだけでした。

0

あなたのアプローチが働いている間、これはきれいになります:

errors.add(:name, :unique_within_scope) 

、その後、単にあなたがシンボルに渡すと、それはそれと仮定し、言い換えれば

activerecord.errors.models.query.attributes.name.unique_within_scope 

リソース文字列を定義しますリソースキーであり、リソースバンドルで検索します。

追加の利点は、あなたがまた、必要に応じて、特定のモデルに上書きすることができます(異なるモデルまたは異なる性質によって使用される)は、このタイプのエラーに対するデフォルトのメッセージを設定する

activerecord.errors.messages.unique_within_scope 

を定義することができることです。