我遇到了通过在日期时间属性中搜索找不到记录的问题。 我有一个具有称为日期的日期时间属性的飞行模型。从表单中我得到一个格式为%d/%m/%Y
的值,我继续使用该信息执行查询,但它总是返回空的ActiveRelation。按日期查找记录[Rails 4]
有些事情我已经试过:
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
任何帮助将真正理解。谢谢。
您应该使用'日期.parse(PARAMS [:日期])'把它转换成像你这样有用的形式。你有'DATE'专栏吗?仔细比较'DATE'和'DATETIME',因为后者有一个小时+分钟+秒的组成部分。 – tadman 2015-03-31 17:28:36