项目计数为has_many / belongs_to

时间:2012-06-21 11:25:45

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1

我有2个型号:制造商和汽车

汽车属于制造商,制造商有许多汽车

当人们正在搜索汽车时,我想向他们展示那些在列表中有汽车的制造商(隐藏没有汽车的制造商)。

我向制造商添加了字段'count',但是不知道在添加/销毁Car时如何更好地保持最新状态?

1 个答案:

答案 0 :(得分:5)

由于您已经有了计数字段,只需将其配置添加到您的汽车模型中:

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

现在,无论何时添加新车,counter中的Manufacturer字段都会增加。您现在需要正确填写此字段,因为您已有数据库。

此外,如果您尚未定义counter字段,则Rails默认使用名为cars_counter的字段(而不仅仅是counter),然后使用{{1定义您只能将其作为counter_cache,而不是将列命名为counter_cache => true