我正在開發使用特殊類型日期格式的Ruby on Rails應用程序。 有問題的日期格式是Year.month.day和日期可以是:Rails驗證三種日期格式
Year.month.day Year.month 年
我的工作是必須檢查的驗證方法格式,如果輸入日期適合任何這些格式,請使其有效。到目前爲止,我的代碼是:
def data_format_correct
regexymd = /[0-9]{4}[.][0-9]{1,2}[.][0-9]{1,2}/
regexym = /[0-9]{4}[.][0-9]{1,2}/
regexy = /[0-9]{4}/
if :data.to_s =~ regexymd
return true
elsif :data.to_s =~ regexym
return true
elsif :data.to_s =~ regexy
return true
else
errors.add(:data)
return
end
末
每次我把日期的形式,在其他情況下上升,出現錯誤。我很確定我的代碼是正確的。我錯過了什麼嗎?
編輯:
找到了解決辦法。這樣的工作:
regexymd = /^[0-9]{4}[.][0-9]{1,2}[.][0-9]{1,2}$/
regexym = /^[0-9]{4}[.][0-9]{1,2}$/
regexy = /^[0-9]{4}$/
regex_final = Regexp.union(regexymd, regexym)
regex_final = Regexp.union(regex_final, regexy)
validates :data, :format => { :with => regex_final }
希望能幫助任何人在與我的相同的情況。謝謝你的答案。我很欣賞這些反饋。
你能過去的例外回溯? – 2012-07-31 09:48:10