【发布时间】:2014-08-27 14:50:13
【问题描述】:
我正在尝试在 Rails 中编写自定义验证消息。
我有这个验证:
validates_confirmation_of :password, if: :password_required?, message: I18n.t('password_confirmation.confimation')
问题是:Rails 将属性名称放在消息的前面。
所以,我得到的密码无效:“确认密码密码应该匹配”
如何去掉消息前面的属性名?
【问题讨论】:
-
如何从您的消息中删除“密码”一词?然后错误消息将是“确认密码应该匹配”。
-
这是一个很好的解决方法,但不能回答我的问题。这是一种情况,但在其他情况下,我不希望字段名称出现在验证消息中。
-
你想只收到“密码应该匹配”的消息吗?
-
是的。我希望消息是我指定的消息。没有属性名称。
-
看一下代码:github.com/rails/rails/blob/master/activemodel/lib/active_model/… 完整的错误信息是一个带有属性和消息的字符串。如果没有猴子补丁,您将无法修改它。在这种情况下,最好的方法是创建自定义方法验证并将错误消息添加到 :base 属性:guides.rubyonrails.org/…
标签: ruby-on-rails ruby internationalization