现在,我有一个正则表达式验证用户的facebook链接,如下:
facebook_regex = /(http:\/\/)?(https:\/\/)?(www.)?facebook.com\/[a-zA-Z0-9\.]*/i
validates :facebook, :format => { :with => facebook_regex }
正则表达式本身工作得很好,但我试图让FB链接可选,如果用户不希望他们发布。但是,如果Facebook字段留空,我的验证就会出错。
处理此问题的最佳方法是什么?
答案 0 :(得分:4)
尝试将allow_blank: true
添加到验证中:
validates :facebook, :format => { :with => facebook_regex }, :allow_blank => true
您还可以添加以下内容:
validates :facebook, :format => { :with => facebook_regex }, :unless => :blank?
答案 1 :(得分:0)
allow_blank
是您正在寻找的选项:
validates :facebook, format: { with: facebook_regex , allow_blank: true}
答案 2 :(得分:0)
实际上,我在这里找到了答案:http://guides.rubyonrails.org/active_record_validations_callbacks.html
原来你可以传递一个名为:allow_blank的选项,它完全符合我的希望!