我有一个Message.uuid字段,我想添加验证,包括:
支持的:
rails为这些规则编写模型验证的最佳方法是什么?
由于
更新:
validates :uuid,
:length => { :within => 5..500 },
:format => { :with => /[A-Za-z\d][-A-Za-z\d]{3,498}[A-Za-z\d]/ }
使用有效的UUID,这是失败的
答案 0 :(得分:6)
我将长度验证保留到validates_length_of
验证程序,以便您获得更具体的错误消息。这将为您做两件事:简化与validates_format_of
验证器一起使用的正则表达式,并在uuid太短/太长时提供长度特定的错误消息,而不是将长度错误显示为“格式”错误。
尝试以下方法:
validates_length_of :uuid, :within => 5..500
validates_format_of :uuid, :with => /^[a-z0-9]+[-a-z0-9]*[a-z0-9]+$/i
您可以使用Rails 3将两个验证合并为一个validates
:
validates :uuid,
:length => { :within => 5..500 },
:format => { :with => /^[a-z0-9][-a-z0-9]*[a-z0-9]$/i }
答案 1 :(得分:2)