我有一個應用程序,企業可以在這裏申請稅款和申請延期稅。 (擴展名是請求說:「我需要更多的時間來申請。」)你會如何加入屬於同一記錄而沒有N + 1的兩條記錄?
我有以下關係:
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
使用,如果沒有具有兩種模式之間的關係聲明。
我該怎麼做?
也許看起來很明顯,人們會查詢商家與「連接」的列表和擴展,並從那裏去。但不幸的是,列表和擴展可能屬於不同的用戶,他們都不必擁有該業務。所以這在這裏不起作用。 – 2012-02-03 20:29:27
我不確定,用戶需要做什麼? – 2012-02-03 20:36:37
@SergioTulentsev - 是的,也許這是更困惑,而不是幫助。我只是想解釋一下,爲什麼我不會執行'business.tax_filing'和'business.tax_extension',而是必須從備案到擴展遍歷應用特定的原因。 – 2012-02-03 20:41:19