0

J'implémente quelque chose d'une liste de tâches avec un modèle d'utilisateur et un modèle de liste avec un attribut de date. Sur la page d'affichage de l'utilisateur, je récupère la liste des choses à faire.Comment interroger les enregistrements 'précédent' et 'suivant' scindés (ActiveRecord & PostGres) rails 4.2

Comment procéder pour interroger une liste de tâches utilisateur pour le jour précédent et/ou le jour suivant.

Toutes les idées sont les bienvenues, merci!

class User < ActiveRecord::Base 
    before_save { self.email = email.downcase } 
    before_save { self.username = username.downcase } 
    has_many :to_do_lists, dependent: :destroy 
    has_many :tasks, dependent: :destroy 
    validates_presence_of :first_name, :last_name 
    VALID_EMAIL_REGEX = /\A[\w+\-.][email protected][a-z\d\-]+(?:\.[a-z\d\-]+)*\.[a-z]+\z/i 
    VALID_USERNAME_REGEX = /\A[a-z_0-9]+\z/i 
    validates :email, presence: true, 
     format: { with: VALID_EMAIL_REGEX }, 
     uniqueness: { case_sensitive: false } 
    validates :username, presence: true, 
     format: { with: VALID_USERNAME_REGEX }, 
     uniqueness: { case_sensitive: false } 
    def name 
    [first_name, last_name].compact.join(' ') 
    end 
end 

et le modèle liste

class ToDoList < ActiveRecord::Base 
    belongs_to :user 
    has_many :tasks, dependent: :destroy 
    validates_presence_of :user_id 
    validates :date, presence: true, 
     uniqueness: {scope: :user_id} 
end 
+0

Cela peut être utile si vous avez montré le modèle. –

Répondre

0

Rails ajoute de nombreuses méthodes utiles à Time pour faire ce type de requête assez intuitive. Puisque vous validez qu'un utilisateur n'a qu'une seule liste à faire pour chaque jour:

@next_day_list = @user.to_do_lists.find_by_date(Date.today.tomorrow) 
@prev_day_list = @user.to_do_lists.find_by_date(Date.today.yesterday)