由于在Rails 3中,form.error_messages已被弃用,所以我使用的是部分,我遍历full_messages并结构化我的html,如下所示:
<% model.errors.full_messages.each do |msg| %> <p><%= msg %></p> <% end %>
然而,应用程序的默认语言环境不是英语,而在我的语言中,full_messages的结构有点不自然:
{{attribute}} {{message}}
我从generate_full_messages的来源看到,我可以本地化格式,所以在我的locale的yml文件(bg.yml)中我添加了这个:
bg: activerecord: errors: full_messages: format: "[...]"
但验证错误的格式保持不变.
解决方法
不知道是否可以帮忙,但是一个
locale file for Bulgarian is available on Github.
你也可以尝试这个(应该按照rails guides工作):
bg: errors: format: "%{message}" messages: &error_messages empty: "Something something %{attribute} something something"
this blog post和stack overflow issue也讨论了奇怪的{{attribute}} {{message}}结构.似乎是由两台安装在同一台服务器上的I18n宝石之间的冲突造成的.