1

Railsでの認知テスト用のアプリを作成しています。
私は訪問者のためにいくつかのテスト(Quizオブジェクト)を持っています。ホームページでは、すぐに使えるクイズだけを表示したいと思います。クイズには、いくつかの質問といくつかの可能な回答が必要です。
もちろん、SQLを使用してクエリを実行したり、クラスメソッドを作成してすべてのオブジェクトを再試行したりすることもできますQuiz.questions.size > 1 && Quiz.answer.size > 1。それでも、もっとエレガントで抽象的な方法が欲しいです。
ActiveRecordメソッドであるかのように動作する「ready」メソッドをクエリする方法はありますか?それで、任意のクイズ条件を呼び出しQuiz.find_all_by_ready(1)て入れることができますか?readyキャッシングは可能性があります、私は動的な代替手段があるかどうか疑問に思いました。レールの第一人者はどのように問題を解決しますか?

乾杯、
ダビデ

4

1 に答える 1

3

named_scopeとcounter_cachesの組み合わせを使用すると、次のようなことができます。

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

@quizes = Quiz.ready

これがお役に立てば幸いです。

于 2009-10-06T13:53:20.303 に答える