Rails 3.2.3のほとんどのモデルのエラーメッセージを表示するために、次のパーシャルを使用しています。
# _error_messages.html.erb
<% if object.errors.any? %>
<div id="error_explanation">
<h3><%= pluralize(object.errors.count, "error") %>
prohibited this <%= object.class.to_s.underscore.humanize.downcase %> from being saved:</h3>
<p>There were problems with the following fields:</p>
<ul>
<% object.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
これは、を使用してアプリケーションをローカライズすることを決定するまで、うまく機能しI18n
ました。
de.yml
私はこれを含むドイツ語コンテンツ用の新しいファイルを作成しました(他の多くのものの中でも):
# de.yml
errors: &errors
format: ! '%{attribute} %{message}'
messages:
blank: muss ausgefüllt werden
template:
body: ! 'Bitte überprüfen Sie die folgenden Felder:'
header:
one: ! 'Konnte %{model} nicht speichern: ein Fehler.'
other: ! 'Konnte %{model} nicht speichern: %{count} Fehler.'
etc. etc. etc.
エラーメッセージでこのコンテンツをどのように使用できますか?
特に線は<%= object.class.to_s.underscore.humanize.downcase %>
私を困惑させます。私は次のようなことを試みまし<%= t 'activerecord.errors.template.header', :model => object.model_name.human %>
たが、運がありませんでした。
誰か助けてもらえますか?
ローカリゼーションに関するRailsガイドをすでに3回読みましたが、ここで立ち往生しています。
助けてくれてありがとう!