web-dev-qa-db-fra.com

Rails Plage de dates de requête ActiveRecord

J'essaie d'utiliser la ligne suivante dans mon contrôleur pour capturer toutes les tâches dues moins d'une semaine à partir de la date actuelle:

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

Pour une raison quelconque, il ne trouve aucun résultat même si je sais que j'ai des tâches à effectuer dans les quatre et six jours. Il s'agit de la seule variable d'instance utilisant une requête de plage. J'en ai un autre qui fonctionne bien pour trouver des tâches en retard:

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

Qu'est-ce que je rate?

29
Cody Barr

Il s'avère que mon contrôleur n'était pas configuré correctement et ne sauvegardait plus l'ID de current_user Lors de la création de nouvelles affectations, c'est pourquoi elles n'étaient pas trouvées. J'ai compris cela en utilisant la console Rails et en exécutant une recherche sur les dernières affectations soumises. Le user_id A été défini sur nil. Merci pour l'assistance @ mu est trop court.

1
Cody Barr

Devrait être:

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