🍎
【Rails】error prohibited this obj from being saved:が日本語化されなかった原因について
はじめに
バリデーションによるエラーメッセージの日本語化の実装を行っていた際、
「error prohibited this obj from being saved:」が日本語化されないエラーが発生しました。
原因
エラーメッセージを下記のように部分テンプレートで作成していた。
app/views/layouts/_errors_messages.html.erb
<% if obj.errors.any? %>
<div id="error_explanation">
<h3><%= pluralize(obj.errors.count, "error") %> prohibited this obj from being saved:</h3>
<ul>
<% obj.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
</ul>
</div>
<% end %>
app/views/layouts/_errors_messages.html.erb
3行目の下記記述がエラーの原因
<%= pluralize(obj.errors.count, "error") %> prohibited this obj from being saved:
解決方法
下記記述に変更したところ、日本語で表示されるようになりました!
app/views/layouts/_errors_messages.html.erb
<%= t("errors.template.header", model: obj.model_name.human, count: obj.errors.count) %>
詳細はいまいち理解できていないので、調べます🤨
Discussion