Ruby on rails 自定义Rails验证消息(不显示属性名称)Rails 4

Ruby on rails 自定义Rails验证消息(不显示属性名称)Rails 4,ruby-on-rails,ruby,internationalization,Ruby On Rails,Ruby,Internationalization,我正在尝试在rails中编写自定义验证消息 我有以下验证: validates_confirmation_of :password, if: :password_required?, message: I18n.t('password_confirmation.confimation') 问题是:Rails将属性名放在消息前面 所以,对于无效密码,我得到:“确认密码应该匹配” 如何删除消息前面的属性名称?您可以自定义区域设置yml文件中错误消息的格式。只需将自己的格式添加到项目中 例如,在co

我正在尝试在rails中编写自定义验证消息

我有以下验证:

validates_confirmation_of :password, if: :password_required?, message: I18n.t('password_confirmation.confimation')
问题是:Rails将属性名放在消息前面

所以,对于无效密码,我得到:“确认密码应该匹配”


如何删除消息前面的属性名称?

您可以自定义区域设置yml文件中错误消息的格式。只需将自己的格式添加到项目中

例如,在config/locales/en.yml文件中:

有关原始格式,请参见

更新


如果您不想全局更改格式并仅针对这一种情况显示特定消息,则应在视图中处理该问题。我不知道你到底是如何显示错误的。如果您以某种方式使用了
errors.full_messages
,则在这种情况下不应使用,这会添加格式前缀。例如,您可以编写一个仅直接获取错误的帮助程序(
@your_model.errors[:email]
),并自己构造所需的输出。

如何从消息中删除“密码”一词?然后错误消息将是“确认密码应匹配”。这是一个很好的解决方法,但没有回答我的问题。这是一种情况,但我不希望字段名出现在验证消息中。是否仅获取“密码应匹配”消息?是的。我希望消息是我指定的消息。没有属性名。看一下代码:完整的错误消息是一个带有属性和消息的字符串。如果不进行猴子修补,则无法修改该选项。在这种情况下,最好的方法是创建自定义方法验证,并将错误消息添加到:base attribute:Yes。这将设置所有验证消息的格式。我编辑了我的答案,寻找可能的替代方案。
en:
  errors:
    format: "%{message}"