显示错误时访问模型的属性翻译
Accessing the model's attribute translations when displaying error
我已成功创建 he.yml 来本地化模型的属性名称,
示例:
attributes:
vendor:
name: שם ספק
counter_number: מספר חשבונית
phone: טלפון
address: כתובת
现在,使用 simple_form 的 f.input 在表单中显示标签,可以正确显示每个属性的翻译值。
问题是,验证后显示错误,使用
<% @vendor.errors.each do |attribute, error| %>
|属性|例如,对于错误 "counter_number",显示:"counter_number"。
不是语言环境文件中的翻译文件 [正如我之前提到的,已成功配置和加载]。
我在 ul.errors 中附加了错误,如以下屏幕截图所示:
提前致谢。
以下只是完成您提供的代码的示例。
<% @vendor.errors.each do |attribute, error| %>
<strong><%= t("activerecord.attributes.#{@vendor.class.to_s.underscore}.#{attribute}") %>:</strong>
<%= error.messages.to_sentence %>
<% end %>
也许有比这更简单的方法。
你可以这样做:
@vendor.errors.messages do |attribute, errors|
translated_attribute = Vendor.human_attribute_name(attribute)
errors = errors.join(", ")
end
我用我的 User
模型测试了这个:
我已成功创建 he.yml 来本地化模型的属性名称, 示例:
attributes:
vendor:
name: שם ספק
counter_number: מספר חשבונית
phone: טלפון
address: כתובת
现在,使用 simple_form 的 f.input 在表单中显示标签,可以正确显示每个属性的翻译值。
问题是,验证后显示错误,使用
<% @vendor.errors.each do |attribute, error| %>
|属性|例如,对于错误 "counter_number",显示:"counter_number"。
不是语言环境文件中的翻译文件 [正如我之前提到的,已成功配置和加载]。
我在 ul.errors 中附加了错误,如以下屏幕截图所示:
提前致谢。
以下只是完成您提供的代码的示例。
<% @vendor.errors.each do |attribute, error| %>
<strong><%= t("activerecord.attributes.#{@vendor.class.to_s.underscore}.#{attribute}") %>:</strong>
<%= error.messages.to_sentence %>
<% end %>
也许有比这更简单的方法。
你可以这样做:
@vendor.errors.messages do |attribute, errors|
translated_attribute = Vendor.human_attribute_name(attribute)
errors = errors.join(", ")
end
我用我的 User
模型测试了这个: