我正在學習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