我遇到的问题是我无法通过搜索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
真的很感激任何帮助。感谢。
答案 0 :(得分:3)
您需要将航班与日期范围进行比较
parsed_datetime = DateTime.parse(params[:date])
Flight.where(date: (parsed_datetime)..(parsed_datetime + 1.day))
答案 1 :(得分:0)
试试这个
Flight.where(["date like ?", "%#{Date.parse(params[:date])}%"])
或者
Flight.where(["date like ?", "%#{params[:date].to_date}%"])