Ruby on rails 如何自定义消息的验证长度以包含属性长度?
我想自定义Ruby on rails 如何自定义消息的验证长度以包含属性长度?,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我想自定义上的错误消息,以验证的长度,从而包括正在检查的属性的长度。我知道我们可以在消息中执行“%{value}”或“%{attribute}”来获取这些值。是否有可以用来获取属性长度的标志?我希望避免为了得到一个漂亮的信息而创建自定义验证。此外,当验证程序已经在对字符串进行两次计数时,对字符串进行两次计数似乎是一种浪费 以下是我想要的: validates_length_of :a, :b,:c, :d, :e, :maximum => 1000, :message=>"is to
上的错误消息,以验证
的长度,从而包括正在检查的属性的长度。我知道我们可以在消息中执行“%{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} "
您可以使用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}" }
不称这是一个答案,因为它更像是暗中刺伤,但如何:message=>“长度应该是%{count},但应该是{%{value}.length}”。基本上,我希望你能把%{value}当作#{}里面的真正表达式来对待。danh,这是我的第一个想法。不幸的是,它没有像预期的那样工作。我希望避免这个过程。但是在挖掘rails源代码之后,我认为我所希望的不存在。