我正在开发使用特殊类型日期格式的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