2011-06-27 34 views
1

@student = Student.find(:all, :conditions => {:school_id => school.id,:created_at => Date.today })
生徒の作成日が同じ日である必要があります。このルビーのクエリを書く必要があります。
しかし、これはゼロ値を与えます。私が "if"条件を使うとき、私はif created_at.to_date == Date.today.to_dateを使うことができます。
私の質問は、datetime形式のシンボル(:created_at)を日付形式に変換する方法です。 :トリックのルビーの日付の比較

答えて

5

パート(手段は、ここでStudent.findは(..、created_at.to_date => Date.today.to_date)別の方法は何ですか、可能ではない)created_atは時間値であるということです、日付値ではありません。 this StackOverflow answer to a similar questionが推奨する、この問題を解決する1つの方法は、クエリ中の日付にcreated_at値を変換することです:

school.students.all(:conditions => ["DATE(created_at) = DATE(?)", Time.now]) 

(私は学校のhas_many :students関係を使用するクエリをリファクタリングすることに注意してください。)