У меня есть приложение, в котором предприятия могут подавать налоги и запрашивать налоговые льготы. (Расширением является запрос, говорящий «Мне нужно больше времени для подачи файла».)
У меня есть следующие отношения:
Business has_many :tax_filings (one per year)
TaxFiling belongs_to :business
Business has_many :tax_extensions (one per year)
TaxExtension belongs_to :business
Когда я показываю список налоговых деклараций, я хочу, чтобы каждая регистрация показывала, есть ли соответствующее расширение для него. Но я не уверен, как это сделать без запроса N + 1.
Прямо сейчас у меня есть этот метод на TaxFiling:
def extension
TaxExtension.where(:business_id => business_id, :year => year).first
end
Так что каждый раз, когда я звоню TaxFiling#extension
, он выполняет другой запрос к базе данных.
Я добавил область действия для TaxFiling
, что joins
расширения для business_id
и year
, но я не уверен, как заставить TaxFiling#extension
использовать это, не имея заявленных отношений между двумя моделями.
Как я могу это сделать?