Mi chiedo se il counter_cache funzionerebbe nell'ereditarietà di una singola tabella.counter_cache nell'ereditarietà di una singola tabella
Per questi modelli:
class User
has_many :questions
end
class Question
belongs_to :user, :counter_cache => true
end
class SimpleQuestion < Question
end
class ComplexQuestion < Question
end
così sarà i seguenti contatori lavorare?
create_table(:users) do |t|
t.integer :questions_count
t.integer :simple_questions_count
t.integer :complex_questions_count
end
- Tutti loro lavoro
- Nessuno di loro lavoro
- Solo
questions_count
lavoro - Solo
simple_questions_count
ecomplex_questions_count
Quale? Sto indovinando il 3 °, ma ne voglio altri 4. Se non è 4, come faccio a far funzionare 4?
=== === UPDATE
Ecco un esempio:
id, user_id, question_content, type
1, 3, something, SimpleQuestion
2, 3, something, SimpleQuestion
3, 3, something, ComplexQuestion
Quindi ora voglio:
user.questions_count # => 3
user.simple_questions_count # => 2
user.complex_questions_count # => 1
La mia domanda è, qual è il comportamento di base di :counter_cache => true
e è possibile applicare su ereditarietà di una singola tabella?
Stai provando ad avere 'simple_questions_count' e' complex_questions_count' restituisce lo stesso numero di conteggio? Oppure quelli che stanno per contare in base ad un altro campo nella tabella delle domande (ad esempio, l'utente invia se è una domanda semplice o complessa)? – erskingardner
'SimpleQuestion' e' ComplexQuestion' sono sottoclassi di 'Domanda', con diversi' tipi' nella stessa tabella. Forse do un esempio. – PeterWong