我想在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} "
答案 0 :(得分: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}" }