2010-12-26 6 views
2

によってフィルタリングなったレコード私は(デシベルで、対応するテーブル)「ジョブ」モジュールを持って、そのモジュールはscheduled_run(日時)と呼ばれるフィールドを持っているとのuser_idというフィールド:ルビー - 日付

  1. どのようにすることができます私はユーザーに属し、今日予定されているすべての仕事を手に入れますか?
  2. ユーザーに属し、先週予定されているすべてのジョブを取得するにはどうすればよいですか?
+0

"module"の代わりに "Class"を意味しますか? –

答えて

1

ユーザーに属しており、今日のために予定されているすべてのジョブを取得するには、あなたが今日の時間内にすべてのscheduled_runsを検索する必要があります、我々は同様のコマンドをやるが、我々は:start:endは、開始と終了週のように切り替わります:上記のコマンドの両方で

user = User.find(1) # Will get the user with ID 1 
jobs = Job.where("user_id = :id AND scheduled_run >= :start AND scheduled_run < :end", 
       :id => user.id, 
       :start => 1.week.ago.to_date, 
       :end => Date.today) 

to_dateは目を治療するためのActiveRecordが発生します結果の開始日はDateTimeとなります。

1

ような何か:あなたは日付の範囲を指定する必要があります先週のためのものを見つけるために

Job.where(:user_id => some_user_id, :scheduled_run => Date.today).all 

。私はあなたがその部分を理解できるようにします。 ActiveRecordガイドに記載されている "Range condition"または "Subset condition"を使用したいと思うでしょう。

Rails ActiveRecord Guideは読みやすいです。また、ActiveRecord文書の「条件」セクションを参照してください。先週のためのすべてのジョブを取得するには

user = User.find(1) # Will get the user with ID 1 
jobs = Job.where("user_id = :id AND scheduled_run >= :start AND scheduled_run < :end", 
       :id => user.id, 
       :start => Date.today, 
       :end => 1.day.from_now.to_date) 

0

普通のルビーか、レールや他のORM /フレームワークを使用していますか? 私はquestiontagはActiveRecordの

をマークして以来、このように行うことができ、同じくらいと仮定します:Railsのドキュメント内の

Job.where("user_id = ? AND datetime = ?", user_id, datetime).all 

よりここhttp://api.rubyonrails.org/classes/ActiveRecord/Base.html

また、日付範囲を使用することができ、ちょうど)

関連する問題