Domanda

Sto costruendo un app per i test cognitivi in Rails.
Ho un certo numero di prove (Quiz gli oggetti) per i miei visitatori.Nella home page vi voglio mostrare solo i quiz che sono pronti per il consumo:essi devono disporre di un numero di domande e un numero di possibili risposte.
Ovviamente non poteva di query con SQL, o creare un metodo di una classe di riprovare a tutti gli oggetti in cui Quiz.questions.size > 1 && Quiz.answer.size > 1.Ancora, vorrei un più elegante/astratto modo.
C'è un modo per query di un metodo, come se si trattasse di un ActiveRecord metodo, in modo che posso chiamare Quiz.find_all_by_ready(1) e mettere ready in ogni quiz condizione?La cache è una possibilità, mi chiedevo se c'era una dinamica alternativa.Come rails guru risolvere il problema?

Ciao
Davide

È stato utile?

Soluzione

Utilizzando una combinazione di named_scope e counter_caches si potrebbe fare qualcosa di simile a questo:

class Quiz < AR:B
    named_scope :ready, :conditions => ['quizes.questions_count > 0 AND quizes.answers_count > 0']
end

@quizes = Quiz.ready

Spero che questo aiuta!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top