我正在学习Rails,并陷入了一个小问题。我写死了简单的应用程序与任务列表,让模型看起来类似的东西:Rails模型中的多个counter_cache
class List < ActiveRecord::Base
has_many :tasks
has_many :undone_tasks, :class_name => 'Task',
:foreign_key => 'task_id',
:conditions => 'done = false'
# ... some validations
end
表List
模型列tasks_counter
和undone_tasks_counter
。
class Task < ActiveRecord::Base
belongs_to :list, :counter_cache => true
# .. some validations
end
有了这样的代码有attr_readonly :tasks_counter
的List
实例,但我想有未完成的任务计数器为好。有没有办法让Rails自动缓存多个计数器。
到目前为止,我已经设法创建TasksObserver
增量或减量Task#undone_tasks_counter
,但也许有一个更简单的方法。
你最终弄明白了吗? – 2011-11-21 14:20:48