Как запросить рельсы в области "предыдущая" и "следующая" записи (ActiveRecord & PostGres) 4.2

Я реализую что-то из списка задач с моделью пользователя и модели списка с атрибутом даты. На странице показа пользователя я получаю список текущих дел.

Как мне выполнить запрос списка задач пользователя за предыдущий и / или следующий день.

Все идеи приветствуются, спасибо!

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+\-.]+@[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

и модель списка

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

1 ответ

Rails добавляет много полезных методов Time сделать этот тип запроса довольно интуитивно понятным. Поскольку вы подтверждаете, что у пользователя есть только один список дел на каждый день:

 @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)
Другие вопросы по тегам