0

日付 (datetime ではない) である dep_date フィールドを持つモデルがあります。特定の日付のレコードのモデルをクエリすると、何も返されません。RoR 3.2 を SQLite で使用する

1.9.3-p327 :019 > Flight.find(62)
  Flight Load (0.4ms)  SELECT "flights".* FROM "flights" WHERE "flights"."id" = ? LIMIT 1  [["id", 62]]
 => #<Flight id: 62, dep_city_id: 3, arr_city_id: 15, dep_date: "2013-03-28", dep_time: nil, price_per_adult: #<BigDecimal:b7e3c94,'-0.0',9(9)>, price_per_child: #<BigDecimal:b7e3c30,'-0.0',9(9)>, free_seats: nil, flight_status: nil, created_at: "2013-03-14 22:15:48", updated_at: "2013-03-14 22:15:48", arr_date: "2013-04-15", arr_time: nil, c_flight_time: 0, c_flight_distance: 0> 

1.9.3-p327 :020 > Flight.where(:dep_date => "2013-03-28")
  Flight Load (0.5ms)  SELECT "flights".* FROM "flights" WHERE "flights"."dep_date" = '2013-03-28'
 => [] 
4

2 に答える 2

1

私の最初の推測では、Rails は "2013-03-28" を日付ではなく文字列として中断しています。これを試すことをお勧めします:

Flight.where(:dep_date => "2013-03-28".to_date)
于 2013-03-15T01:39:23.043 に答える
0

これは SQLite3 が原因でした。日付のクエリは、PostgreSQL で正常に機能します。

于 2013-03-15T10:49:43.057 に答える