可怕的头衔,但这就是我所拥有的:
Loading development environment (Rails 3.2.8)
1.9.3p194 :001 > Product
=> Product(id: integer, name: string, date: datetime, created_at: datetime, updated_at: datetime, end_time: datetime, start_time: time)
1.9.3p194 :002 > p = Product.new
=> #<Product id: nil, name: nil, date: nil, created_at: nil, updated_at: nil, end_time: nil, start_time: nil>
1.9.3p194 :003 > p.start_time = "foo"
=> "foo"
1.9.3p194 :004 > p.start_time
=> 2000-01-01 00:00:00 UTC
我不希望无效的时间解析成有效的时间。这导致我从表单提交验证问题。
这有点相关:Rails 3 - Validation for Time existence
并在github:https://github.com/rails/rails/issues/6045
中导致此问题我试着用眼睛跟踪代码,但是除了“foo”不应该解析而且它应该返回nil之外没有任何东西弹出。
编辑:我创建了一个示例应用,显示了这种确切的行为https://github.com/danbeaulieu/test-app
但实际上它只是一个单一模型的裸机应用程序。
答案 0 :(得分:0)
您可以使用validates_timeliness来验证日期,时间和日期时间。
然后在你的模型中你可以做到
validates_time :start_time
或者查看我的GIST来处理默认日期验证