0

可怕的标题,但这就是我所拥有的:

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 exists

并导致 github 中出现此问题:https ://github.com/rails/rails/issues/6045

我试着用眼睛追踪代码,但除了“foo”不应该解析并且它应该返回 nil 之外,什么都没有出现。

编辑:我创建了一个示例应用程序来显示这种确切的行为https://github.com/danbeaulieu/test-app

但实际上它只是一个具有单一模型的简单应用程序。

4

1 回答 1

0

您可以使用validates_timeliness来验证日期、时间和日期时间。

然后在你的模型中你可以做

validates_time :start_time

或者看看我的GIST来处理默认日期验证

于 2012-09-04T12:18:07.463 回答