1

我想自定义 a 上的错误消息validates_length_of以包含被检查属性的长度。我知道我们可以做"%{value}""%{attribute}"在消息中获得这些值。有没有我们可以用来获取属性长度的标志?我希望避免创建自定义验证只是为了获得漂亮的消息。此外,当验证器已经在做的时候,对一个字符串做两次计数似乎是一种浪费。

这是我想要的:

validates_length_of :a, :b,:c, :d, :e, :maximum => 1000, :message=>"is to long, maximum length is` %{count}, current length is %{actual length here} "
4

1 回答 1

3

您可以使用 Proc 来获取属性

validates_length_of :a, maximum: 1000,
    message: proc { |p, v| "is to long, " +
                           "maximum length is #{v[:count]}, " +
                           "current length is #{v[:value].length}" }
于 2012-05-02T02:46:52.210 回答