我有模型Teacher
其中有字段:teacher_birthday
。我從視圖中獲取:teacher_birthday
(單個文本框)。我想確保一個輸入日期有這樣的格式 - dd.mm.yyyy
(我的意思是我想確定輸入日期爲12.24.1991
將不會保存在分貝,因爲這樣的日期是錯誤的),並且這個日期存在。另外,我想在MODEL中做到這一點。這可能嗎?Rails 3.2 - 驗證日期格式
0
A
回答
0
聲明要在模型中調用的驗證方法,然後定義此方法。以下應大致做你需要什麼:
validate :validate_teacher_birthday
private
def validate_teacher_birthday
errors.add("Teacher birthday", "is invalid.") unless (check_valid_date && valid_date_format)
end
def valid_date_format
self.teacher_birthday.match(/[0-9][0-9].[0-9][0-9].[0-9][0-9][0-9][0-9]/)
end
def check_valid_date
begin
parts = self.teacher_birthday.split(".") #contains array of the form [day,month,year]
Date.civil(parts[2].to_i,parts[1].to_i,parts[0].to_i)
rescue ArgumentError
#ArgumentError is thrown by the Date.civil method if the date is invalid
false
end
end
1
嘗試chronic寶石。它具有非常靈活的日期解析,包括你在找什麼:
[11] pry(main)> require 'chronic'
=> true
[12] pry(main)> Chronic.parse('24.12.1991'.gsub('.','-'))
=> 1991-12-24 12:00:00 -0700
相關問題
- 1. Rails驗證三種日期格式
- 2. PHP格式/驗證日期
- 3. Pdf格式日期驗證
- 4. Unix日期格式驗證
- 5. 日期格式驗證
- 6. 驗證日期格式
- 7. Rails驗證類型日期?
- 8. Rails日期格式
- 9. Rails正則表達式日期驗證
- 10. Rails中的日期驗證
- 11. 驗證日期格式在軌
- 12. 驗證日期格式在php
- 13. 在Marklogic中驗證日期格式
- 14. 如何驗證日期時間格式
- 15. 如何驗證在Struts2日期格式
- 16. 你如何驗證日期格式?
- 17. 在php中的日期格式驗證
- 18. 在C++中驗證日期格式
- 19. JQuery驗證:日期 - MySQL的格式
- 20. 驗證日期格式在Ruby中
- 21. 如何驗證HTML5日期格式
- 22. 允許Backspace驗證日期格式
- 23. 驗證日期格式的模型
- 24. 驗證日期(包括格式和值)
- 25. 日期驗證的多種格式?
- 26. PHP以特定格式驗證日期
- 27. 驗證日期格式「yyMMdd」在ASP.NET
- 28. PDF格式的Javascript日期驗證
- 29. 自定義日期驗證格式
- 30. ASP格式的日期驗證器
我試試你的代碼之後,我得到了很多在rspec的錯誤,例如:'故障/錯誤:@ user.create_teacher( @attr_teacher) NoMethodError: 未定義的方法拆分爲星期三,1980年12月31日:日期。另外,當我訪問我的頁面,我嘗試打印無效的日期後提交我得到'未定義的方法'分裂爲零:NilClass' – ExiRe 2012-03-20 13:07:37
此外,當我打印一個正確的日期在我的形式我得到:'未定義的方法分裂爲Sun, 1991年12月1日:日期' – ExiRe 2012-03-20 13:14:26