テーブルボード、ユーザー、結合、およびロールがあります。結合テーブルは、ボードに対するユーザーの関連付けと、そのボードでのユーザーの役割を定義します。ユーザーが各ボードでどのような役割を持っているかを区別する方法で一度にすべてのユーザーのボードを取得するか、ユーザーが特定の役割であるボードを取得するために 3 つの個別の呼び出しを行うかのいずれかを試みています。
私が持っているボードモデルでは:
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 回戻ってきた理由はわかりませんが、実際にはそうなっています。
ヘルプ/ヒントをお寄せいただきありがとうございます。