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 - 時間の存在の検証

そして、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 に答える