我似乎无法使用counter_culture来处理条件计数器缓存。它与普通的计数器缓存完美配合。证书批准和拒绝按预期递增和递减。
所以在我的数据库中,对于Packet,slip_count通过packet.slips.size工作,但我无法弄清楚如何获得条件approved_count。我得到了:
NoMethodError: undefined method
我尝试引用的每种方式,即packet.slips.approved.size
包class Packet < ActiveRecord::Base
has_many :slips, :dependent => :destroy
...
end
滑
class Slip < ActiveRecord::Base
belongs_to :packet
counter_culture :packet
has_one :certificate
...
end
证书
class Certificate < ActiveRecord::Base
belongs_to :slip
counter_culture [:slip, :packet], :column_name => Proc.new {|model| model.approved? ? 'approved_count' : nil}
...
end