Ruby on rails 同一日期的rails日期范围
当用户选择不同的日期时,下面的查询可以正常工作,但当用户选择相同的日期(如2011年3月5日和2011年3月5日)时,它不会返回任何结果。我该怎么办?若用户选择相同的日期,我希望它找到在该日期创建的客户机Ruby on rails 同一日期的rails日期范围,ruby-on-rails,Ruby On Rails,当用户选择不同的日期时,下面的查询可以正常工作,但当用户选择相同的日期(如2011年3月5日和2011年3月5日)时,它不会返回任何结果。我该怎么办?若用户选择相同的日期,我希望它找到在该日期创建的客户机 Client.where(:created_at => date_from..date_to) 您可以创建一个助手方法: def date_range(from, to) from == to ? from : from..to end Client.where(:created
Client.where(:created_at => date_from..date_to)
您可以创建一个助手方法:
def date_range(from, to)
from == to ? from : from..to
end
Client.where(:created_at=>date_range(date_from,date_to))
您可能需要按如下所示修改查询,以在
一天的开始
和一天的结束
Client.where(:created_at => date_from.beginning_of_day..date_to.end_of_day)
当我选择相同的日期时,它找不到任何客户。出现问题。如果日期对象随时间一起传递,则可能需要指定一天的开始和结束时间。纳伦的回答说明了这一点。正确。请记住,当将
date\u from
和date\u to
转换为时间时,它们将变得相同(例如2011-07-19 00:00:00
),因此它实际上只捕获在该精确时刻创建的记录,在这种情况下是在午夜。