У меня есть доски объявлений, пользователи, объединения и роли. Таблица соединений определяет связь, которую пользователь имеет с доской, а также роль, которую пользователь играет на этой доске. Я пытаюсь либо получить все доски пользователей одновременно, чтобы определить, какую роль пользователь играет на каждой доске, либо сделать три отдельных вызова, чтобы получить доски, в которых пользователь играет определенную роль.
В модели платы у меня:
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')
Проблема с первым запросом состоит в том, что у каждой доски есть пользователи, у которых есть каждая возможная роль, поэтому я получаю каждую доску, с которой связан пользователь, а не те, для определенной роли. Что касается второго, я не уверен, как я получаю только одну и ту же доску, возвращенную мне три раза, но это то, что происходит.
Заранее благодарим за любую помощь / советы.