Rails ActiveRecord正则表达式验证非必填字段

aL3*_*3xa 6 regex validation activerecord ruby-on-rails ruby-on-rails-3

我想用regex验证一个字段,并允许它为空(接受一个空字符串).到目前为止,我唯一能做的就是编写一个允许空字符串的正则表达式,如:

validates :field,
          format: { with: /\A([a-z]+|)\z/i }
Run Code Online (Sandbox Code Playgroud)

现在,这不是一个正确的方法 - 这看起来像一个丑陋的黑客.我想知道是否有另一种(正确的)方法?

Gaz*_*ler 14

allow_blank应该工作.(还有allow_nil只接受nil值(不是空字符串))

validates :field,
          format: { with: /\A([a-z]+|)\z/i }, :allow_blank => true
Run Code Online (Sandbox Code Playgroud)