RoRので算出されたフィールド(ActiveRecordの方法として働きます)
-
20-09-2019 - |
質問
私はRailsの中に認知テストのためのアプリケーションを構築しています。
私は私の訪問者のためのテスト(Quiz
オブジェクト)の数を持っています。ホームページでは、私は消費のために準備ができているだけでクイズを表示したい。彼らが質問の数と可能な回答の数を持っている必要があります
。
もちろん、私はすべてのオブジェクトどこQuiz.questions.size > 1 && Quiz.answer.size > 1
をSQLでクエリ、またはクラスメソッドの再試行を作成することができます。
それでも、私は抽象化された/よりエレガントな方法をしたいと思います。
それはActiveRecordのメソッドであるかのように「準備」メソッド演技法を持って照会する方法はありますので、私はQuiz.find_all_by_ready(1)
呼び出し、任意のクイズ状態にready
を置くことができますか?
キャッシングはダイナミック代替があった場合、私は思っていた、可能性です。どのようにレールの第一人者は、問題を解決するのでしょうか?
乾杯、
ダヴィデ
解決
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
私はこのことができます願っています!
所属していません StackOverflow