web-dev-qa-db-ja.com

Rails ActiveRecord Query Date Range

現在の日付から1週間以内に予定されているすべてのタスクをキャプチャするために、コントローラーで次の行を使用しようとしています。

@due_this_week = current_user.tasks.where(due_date: Date.today..1.week.from_now)

なんらかの理由で、4〜6日以内に期限が来るタスクがあることを知っていても、結果が見つかりません。これは、範囲クエリを使用する唯一のインスタンス変数です。期限切れのタスクを見つけるためにうまく機能する別のものがあります:

@overdue = current_user.tasks.where("due_date <= ?", Date.today)

私は何が欠けていますか?

29
Cody Barr

コントローラがどういうわけか正しくセットアップされておらず、current_userの新しい割り当ての作成時のID。これが、割り当てが見つからなかった理由です。 Railsコンソールを使用し、送信された最後の数件の割り当てで検索を実行します。user_idnilに設定されました。 @muが短すぎるアシストをありがとう。

1
Cody Barr

する必要があります:

@due_this_week = current_user.tasks.where(due_date: 1.week.ago..Date.today)
64
NARKOZ