Rails验证,混合消息和full_messages

时间:2017-08-21 23:16:20

标签: ruby-on-rails validation ruby-2.3 ruby-on-rails-5

在大多数情况下,我发现大多数内置验证器的Rails默认错误消息对我来说都很好。不过,我也对某些型号进行了一些验证,默认情况为" {{attribute}} {{message}}" full_message格式没有任何语义意义。我知道我可以显示消息而不是full_messages,但这意味着我必须在每个内置验证中添加我自己的消息,否则属性名称将被切断。 / p>

有没有办法使用默认的full_message格式,但是直接覆盖full_message只需少量验证即可使用不同的格式或特定的字符串?有没有一种自然的方法可以将默认验证消息与一些不以属性名称开头的自定义验证消息混合在一起?

2 个答案:

答案 0 :(得分:0)

您可以向config / locales / en.yml

添加自定义消息

答案 1 :(得分:0)

在Rails 4中,errors.add_to_base("Something is terribly wrong!")会向基本模型添加错误,而不是属性,在这种情况下,full_message会返回与message相同的内容而没有前置属性名。

这已在rails 4.2中删除了,新方法是使用errors.add(:base, "Something is terribly wrong!")