繁体   English   中英

无法按日期找到记录[Rails 4]

[英]Can't find record by Date [Rails 4]

我遇到的问题是我无法通过搜索datetime属性找到记录。 我的飞行模型有一个名为date的日期时间属性。 从表单中我得到格式为%d/%m/%Y ,我正在继续使用该信息执行查询,但它总是返回空的ActiveRelation。

我试过的一些事情:

Flight.first.date == params[:date] 
#=> true 

Date.parse(params[:date]) == Flight.first.date 
#=>true

Flight.where(date: params[:date])
  CACHE (0.0ms)  SELECT "flights".* FROM "flights" WHERE "flights"."date" = ?  [["date", "30/03/2015"]]
#<ActiveRecord::Relation []>
Flight.where(date: Date.parse(params[:date]))
  CACHE (0.0ms)  SELECT "flights".* FROM "flights" WHERE "flights"."date" = '2015-03-30'
#<ActiveRecord::Relation []>


#params[:date] is equal to "30/03/2015"

First.flight.date #is equal to Mon, 30 Mar 2015 00:00:00 UTC +00:00

真的很感激任何帮助。 谢谢。

您需要将航班与日期范围进行比较

parsed_datetime = DateTime.parse(params[:date])
Flight.where(date: (parsed_datetime)..(parsed_datetime + 1.day))

请参阅https://stackoverflow.com/a/13700805/4640187

尝试这个

Flight.where(["date like ?", "%#{Date.parse(params[:date])}%"])

要么

Flight.where(["date like ?", "%#{params[:date].to_date}%"])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM