Ich frage mich, ob der counter_cache in Single Table-Vererbung funktionieren würde.counter_cache in der Vererbung einzelner Tabellen
Für diese Modelle:
class User
has_many :questions
end
class Question
belongs_to :user, :counter_cache => true
end
class SimpleQuestion < Question
end
class ComplexQuestion < Question
end
wird also die folgenden Zähler arbeiten?
create_table(:users) do |t|
t.integer :questions_count
t.integer :simple_questions_count
t.integer :complex_questions_count
end
- Alle von ihnen arbeiten
- Keiner von ihnen
- Nur
simple_questions_count
undcomplex_questions_count
Welche
questions_count
Arbeit=== UPDATE ===
Hier ist ein Beispiel:
id, user_id, question_content, type
1, 3, something, SimpleQuestion
2, 3, something, SimpleQuestion
3, 3, something, ComplexQuestion
So, jetzt ich will:
user.questions_count # => 3
user.simple_questions_count # => 2
user.complex_questions_count # => 1
Meine Frage ist, was das grundlegende Verhalten von :counter_cache => true
ist und Ist es möglich, auf die Vererbung einzelner Tabellen anzuwenden?
Versuchen Sie, 'simple_questions_count' und' complex_questions_count' die gleiche Anzahl zurückgeben zu lassen? Oder werden diese basierend auf einem anderen Feld in der Fragetabelle gezählt (z. B. gibt der Benutzer an, ob es eine einfache oder eine komplexe Frage ist)? – erskingardner
'SimpleQuestion' und' ComplexQuestion' sind Unterklassen von 'Question' und haben in derselben Tabelle einen anderen' Typ'. Vielleicht gebe ich ein Beispiel. – PeterWong