在我的一个模型中,有一个名为sui的字段。它代表“标准用户标识符”。当字段中存在验证错误时,Rails会打印“需要Sui”或"Sui已被占用“。
我如何告诉Rails 'sui'.titleize是"SUI"?我查看了Inflector.human,但这并不完全正确。
发布于 2009-04-29 16:58:15
在这种情况下,我使用custom_err_msg插件。安装后,您可以给出如下自定义错误消息:
validates_presence_of :sui, :message => '^SUI is required'当您将^放在开头时,Rails不会将字段名称放在其中。
编辑:还有另一个用于翻译的插件i18n_label,但你可以用非常简单的方式将字段的名称替换为更好的名称(在插件页面上有一个例子)。它会将名称替换为:
<%= f.label :sui %>
YourModel.human_attribute_name "sui"和错误消息中。
发布于 2014-03-25 22:44:43
您可以通过配置提供titleize方法的ActiveSupport::Inflector来完成此操作。只需在初始化器中定义您自己的inflections即可。
# config/initializers/inflections.rb
ActiveSupport::Inflector.inflections do |inflect|
inflect.acronym 'SUI'
end重新启动您的应用程序以获取更改。现在titleize知道如何处理"SUI“了。启动一个Rails控制台来检查它:
> "sui".titleize
=> "SUI"查看链接的文档,了解更多关于词形变化的更酷的东西。
https://stackoverflow.com/questions/803262
复制相似问题