我的一个模特中有一个名为sui
的字段。它代表“标准用户标识符”。当字段上存在验证错误时,Rails会打印出“Sui is required”或“Sui已被占用”。
如何告诉Rails 'sui'.titleize
是“SUI”?我看了Inflector.human
,但这不太对。
答案 0 :(得分:7)
在这种情况下,我使用custom_err_msg插件。安装时,您可以提供如下自定义错误消息:
validates_presence_of :sui, :message => '^SUI is required'
当你把^放在开头时,Rails不会输入字段名称。
编辑: 还有另一个插件i18n_label用于翻译,但有了它,你可以用非常简单的方式用更好的东西替换你的字段名称(在插件页面上有一个例子)。它将替换名称:
<%= f.label :sui %>
YourModel.human_attribute_name "sui"
并在错误消息中。
答案 1 :(得分:3)
您可以通过配置提供ActiveSupport::Inflector方法的titleize来执行此操作。只需在初始化程序中定义您自己的inflections。
# config/initializers/inflections.rb
ActiveSupport::Inflector.inflections do |inflect|
inflect.acronym 'SUI'
end
重新启动您的应用以获取更改。现在titleize
知道如何处理“SUI”。启动Rails控制台以查看它:
> "sui".titleize
=> "SUI"
请参阅链接的文档,了解更多有关变形的精彩内容。