2012-06-21 38 views
2

我有2種型號:製造商和汽車項目計數的has_many/belongs_to的

汽車屬於製造商,製造商有很多汽車

當人正在尋找的車,我想告訴他們只有在那些製造商列表中包含汽車數據庫(隱藏沒有汽車的製造商)。

我向製造商添加了「計數」字段,但不知道在汽車被添加/銷燬時如何更好地保持它最新?

+0

你能描述一下你爲什麼加數來製造? – codeit

+0

我會尋找Manufacturer.all並找到所有的地方> 0 – bravedick

回答

5

既然你已經擁有了數場,只需添加它的配置到您的汽車型號:

class Car < ActiveRecord::Base 
    belongs_to :manufacturer, :counter_cache => :counter 
end 

現在,每當你添加一個新的車,Manufacturercounter場會增加。現在您需要正確填寫該字段,因爲您已經擁有數據庫。

另外,如果您還沒有已經定義的counter場,Rails的默認將使用命名爲cars_counter(而不是僅僅counter)字段,然後在counter_cache定義你會只爲counter_cache => true,而不是命名列如counter

+0

很好,thx的答案。所有我想要手動完成已經:) – bravedick