私はテーブルボード、ユーザー、結合、および役割を持っています。結合テーブルは、ユーザーがボードとの関連性、およびユーザーがそのボード上に持つ役割を定義します。私は、すべてのユーザーのボードを一度に取得して、ユーザーが各ボード上でどのような役割を果たしているかを区別したり、ユーザーを特定の役割を果たすボードを取得するために3回の呼び出しを試みたりしています。Thinking Sphinxですばらしいグループ化
define_index do
indexes :name
indexes description
has created_at
has users(:id), :as => :user
has joins.role_id, :as => :role
set_property :enable_star => true
set_property :min_infix_len => 1
end
、私はこれに類似したクエリをしようとしてきた:ボードモデルで
私が持っているBoard.search(:with => {:user => some_user.id, :role => some_role.id})
Board.search(:with => {:user => some_user.id}, :group_function => :attr, :group_by => 'role')
最初のクエリの問題点は、各ボードは、ユーザーが持っているということですそれぞれの可能な役割を持っているので、特定の役割のものではなく、ユーザーが関連しているすべてのボードを取得します。 2つ目は、同じボードだけが3回戻ってきたのかどうかは分かりませんが、それは起こっていることです。
ご協力いただきありがとうございます。
返信いただきありがとうございました 現時点では、ちょっと混乱しているとは思いますが、現時点では動作していると思います。私はフォローアップの質問があると思います。複数の変数属性を作成することはできますか?おそらく、それらのリストではなく整数のペアです。 ジョインはIDを持っているので、私はボードのインデックスにjoinのidを付けることができますし、ボードの検索でwith:のsearch_for_idsを実行できます。おそらくすべての役割を果たすのに最適ではないかもしれませんが、ただ1つの役割では十分に機能します。 –