我正在尝试使用此查询过滤在特定日期(今天)分配的记录:
assignments = p.assignments.where("assigned_date = ?", Date.today)
即使我知道这些记录存在,但我总是得到一个空白的结果。 我也试过......哪里(:assigned_date => Date.today)没有运气。
数据库架构是:
# == Schema Information
#
# Table name: assignments
#
# id :integer not null, primary key
# name :string(255)
# rep :integer
# set :integer
# instructions :text
# created_at :datetime not null
# updated_at :datetime not null
# player_id :integer
# actual_percentage :float
# predicted_percentage :float
# assigned_date :date
#
在控制台中,当我输入
时p.assignments.first.assigned_date == Date.today
它返回true。 知道我做错了吗?
答案 0 :(得分:1)
DateTime包含日期和时间,因此您正在查找具有精确值的记录,而不仅仅是同一天。
assignments = p.assignments.where('assigned_date BETWEEN ? AND ?', DateTime.now.beginning_of_day, DateTime.now.end_of_day).all
应该返回预期的
P.S。
所有积分均为Tadman