我有表板、用户、联接和角色。joins 表定义用户与板的关联,以及用户在该板上的角色。我试图通过区分用户在每个板上的角色的方式一次获取所有用户的板,或者进行三个单独的调用以获取用户是特定角色的板。
在板模型中,我有:
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')
第一个查询的问题是每个版块都有具有每个可能角色的用户,所以我得到了与用户关联的每个版块,而不是特定角色的版块。至于第二个,我不确定我是如何只将同一块板退回给我三次,但这就是正在发生的事情。
提前感谢您的任何帮助/提示。