2012-07-17 46 views
1

現在,我有一個正則表達式驗證用戶的Facebook的鏈接,因爲這樣的:Rails的:使用正則表達式,只有當數據出現

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

本身只是正常的正則表達式,但我如果用戶不希望他們發佈,試圖使FB鏈接包含可選項。但是,如果Facebook字段留空,我的驗證正在踢出一個錯誤。

處理這個問題的最佳方法是什麼?

+0

你不問,但是這可能是一個稍微[更好的模式](http://refiddle.com/2nj)(不允許兩個協議,但空路徑),或者你可以去[一路](http://stackoverflow.com/a/190405/95033)。 :) – Wolfram 2012-07-17 21:41:55

回答

4

嘗試增加allow_blank: true來驗證:

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

你也可以添加在除非:

validates :facebook, :format => { :with => facebook_regex }, :unless => :blank? 
+0

第一個是我需要的。有一個綠色的複選標記! – 2012-07-17 21:22:21

0

allow_blank是你要找的選項:

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

相關問題