1

现在,我有一个正则表达式来验证用户的 facebook 链接,例如:

facebook_regex = /(http:\/\/)?(https:\/\/)?(www.)?facebook.com\/[a-zA-Z0-9\.]*/i
validates :facebook, :format => { :with => facebook_regex }

正则表达式本身工作得很好,但是如果用户不想发布他们的链接,我会尝试将 FB 链接包含在内。但是,如果 Facebook 字段留空,我的验证会引发错误。

处理这个问题的最佳方法是什么?

4

3 回答 3

4

尝试添加allow_blank: true到验证:

validates :facebook, :format => { :with => facebook_regex }, :allow_blank => true

您还可以添加一个除非:

validates :facebook, :format => { :with => facebook_regex }, :unless => :blank?
于 2012-07-17T21:01:53.933 回答
0

allow_blank是您正在寻找的选项:

validates :facebook, format: { with: facebook_regex , allow_blank: true}

于 2012-07-17T21:02:17.223 回答
0

实际上,我在这里找到了答案:http: //guides.rubyonrails.org/active_record_validations_callbacks.html

事实证明,您可以传递一个名为 :allow_blank 的选项,这正是我所希望的!

于 2012-07-17T21:02:24.553 回答