Zastanawiam się, czy counter_cache działałby w dziedziczeniu z jednej tabeli.counter_cache w dziedziczeniu pojedynczego stołu
Dla tych modeli:
class User
has_many :questions
end
class Question
belongs_to :user, :counter_cache => true
end
class SimpleQuestion < Question
end
class ComplexQuestion < Question
end
Więc będzie działać następujące liczniki?
create_table(:users) do |t|
t.integer :questions_count
t.integer :simple_questions_count
t.integer :complex_questions_count
end
- Wszystkie z nich działają
- Żaden z nich nie działa
- Tylko
questions_count
pracy - Tylko
simple_questions_count
icomplex_questions_count
który? Zgaduję 3, ale chcę jeszcze 4. Jeśli to nie 4, jak mam zrobić 4 prace?
=== UPDATE ===
Oto przykład:
id, user_id, question_content, type
1, 3, something, SimpleQuestion
2, 3, something, SimpleQuestion
3, 3, something, ComplexQuestion
Więc teraz chcę:
user.questions_count # => 3
user.simple_questions_count # => 2
user.complex_questions_count # => 1
Moje pytanie brzmi, co jest podstawowym i zachowanie :counter_cache => true
czy można ubiegać się o dziedziczenie z jednego stołu?
Czy próbujesz mieć 'simple_questions_count' i' complex_questions_count' zwracają ten sam numer? A może liczyć się na podstawie innych pól w tabeli pytań (np. Użytkownik przesyła pytanie proste lub złożone)? – erskingardner
'SimpleQuestion' i' ComplexQuestion' są podklasami 'Pytanie', mającymi różne' type' w tej samej tabeli. Może podam przykład. – PeterWong