Ruby on rails 访问模型&x27;显示错误时的属性转换

Ruby on rails 访问模型&x27;显示错误时的属性转换,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-4,rails-activerecord,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 4,Rails Activerecord,我已经成功创建了he.yml来本地化模型的属性名称, 例如: 现在,使用simple_form的f.input在表单中显示标签,正确显示每个属性的转换值 问题是,在验证后显示错误时,使用 <% @vendor.errors.each do |attribute, error| %> |例如,显示错误“计数器编号”的属性“计数器编号”。 不是语言环境文件中的翻译版本[正如我前面提到的,已成功配置并加载]。 我在ul.errors中添加了错误,如此屏幕截图所示: 提前感谢。以下只

我已经成功创建了he.yml来本地化模型的属性名称, 例如:

现在,使用simple_form的f.input在表单中显示标签,正确显示每个属性的转换值

问题是,在验证后显示错误时,使用

<% @vendor.errors.each do |attribute, error| %>

|例如,显示错误“计数器编号”的属性“计数器编号”。 不是语言环境文件中的翻译版本[正如我前面提到的,已成功配置并加载]。 我在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
我已经用我的
用户
模型对此进行了测试:

@vendor.errors.messages do |attribute, errors|
  translated_attribute = Vendor.human_attribute_name(attribute)
  errors = errors.join(", ")
end