我想知道如果counter_cache將工作在單表繼承。counter_cache單表繼承
對於這些模型:
class User
has_many :questions
end
class Question
belongs_to :user, :counter_cache => true
end
class SimpleQuestion < Question
end
class ComplexQuestion < Question
end
所以將以下計數器工作?
create_table(:users) do |t|
t.integer :questions_count
t.integer :simple_questions_count
t.integer :complex_questions_count
end
- 所有這些工作
- 沒有他們的工作
- 只有
questions_count
工作 - 只有
simple_questions_count
和complex_questions_count
哪一個?我猜測第三,但我想要4。如果不是4,我該如何讓4工作?
=== UPDATE ===
下面是一個例子:
id, user_id, question_content, type
1, 3, something, SimpleQuestion
2, 3, something, SimpleQuestion
3, 3, something, ComplexQuestion
所以現在我想:
user.questions_count # => 3
user.simple_questions_count # => 2
user.complex_questions_count # => 1
我的問題是,什麼是的:counter_cache => true
的基本行爲和有可能適用於單表繼承?
您是否想讓'simple_questions_count'和'complex_questions_count'返回相同的計數值?或者那些將根據問題表上的其他字段進行計數(例如,用戶提交它是簡單問題還是複雜問題)? – erskingardner 2010-10-22 07:02:00
'SimpleQuestion'和'ComplexQuestion'是'Question'的子類,在同一個表中有不同的'type'。也許我舉一個例子。 – PeterWong 2010-10-22 07:54:30