У меня есть класс класса записи и периода оплаты, каждый из которых имеет start_time и end_time.Eager Load без формальной ассоциации ActiveRecord
Я захватывая диапазон записей с помощью
Record.where(start_time: s..e)
Я бегу в вопрос запроса N + 1, потому что, когда я Переберите эти записи, я сделать запрос на это период оплаты. Период оплаты не может пересекаться, поэтому в записи может быть один или нет периода оплаты; но они не связаны с записью с любой кодированной ассоциацией активных записей. Мой запрос для поиска Pay Период:
PayPeriod.where(%q{ (start_time, end_time) OVERLAPS (?, ?) }, self.start_time, self.end_time).first
Классы:
class Record < ActiveRecord::Base
...
validates :start_time, presence: true
validates :end_time, presence: true
...
end
class PayPeriod < ActiveRecord::Base
...
validates :start_time, presence: true
validates :end_time, presence: true
...
end
Я знаю, что нужно предварительно загрузить в PayPeriods с Records. Я просто боюсь, как это сделать.
Что связь между paypriods и записей –