2009-08-12 7 views
1

私はユーザーによって作成されたドキュメントを格納するアプリケーションを持っています。これらの文書には著者、作成日があります。著者は役割を持つことができます。さらに、指定されたドキュメントにはキーワードが付いたタグが付けられます。データベースには〜16,000件の文書があり、ユーザーはこの情報を任意の組み合わせで表示することができます。たとえば、所与の著者による、または所与の時間枠内でのすべての文書の閲覧、またはこの役割の著者など(およびこれらの任意の組み合わせ)。インデックスページ上の複数の可能なクエリ条件を処理する最も良い方法

はこれを実装するための推奨最良の方法はありますか?一般的に、私はparamsハッシュで目的の条件を渡し、複雑なif ... elsif ... else ...を渡して、渡された条件を別のModel.find呼び出しに直接デコードします。あるいは、同様のifシーケンスを使用して適切なSQL条件フレーズを作成し、単一のfind呼び出しを使用します。

これらの両方は、ハックのように思えるし、そこに名前のスコープでそれを行うには良い方法でなければなりませんが、私は順列に対処するためのクリーンな方法を把握することはできません。

答えて

0

あなただけModel.findと1行のコードを持っている必要があります。代わりに、複数のfindのコールを作成するために、条件ロジックを使用してのfindコールに渡される:conditionsハッシュを移入するために、条件付きロジックを使用しています。

関連する問題