@student = Student.find(:all, :conditions => {:school_id => school.id,:created_at => Date.today })
我需要编写这个ruby查询来检索学校中学生创建日期应该是同一天的所有学生
但是这给了nil值。当我使用“if”条件时,我可以使用if created_at.to_date == Date.today.to_date
所以我的问题是如何将日期时间格式化符号(:created_at)转换为日期格式。
(表示,这里Student.find(..,:created_at.to_date => Date.today.to_date)是不可能的,替代方式是什么)
答案 0 :(得分:5)
部分技巧是created_at
是时间值,而不是日期值。 this StackOverflow answer to a similar question推荐的一种解决此问题的方法是将created_at
值转换为查询期间的日期:
school.students.all(:conditions => ["DATE(created_at) = DATE(?)", Time.now])
(请注意,我重构了查询以使用学校的has_many :students
关系。)