У меня есть пользователь, членство и модель группы. Пользователь имеет много членств и групп через членство. Группа имеет много членств и пользователей через членство. Членство принадлежит обоим.
Когда пользователь обращается к представлению индекса пользователей, я хочу показать ему / ей всех пользователей, принадлежащих к группе, к которой он / она принадлежит: я создал следующий код, который не работает. Я не могу заставить запрос работать. Пиз, помоги!
Код в пользовательском контроллере
class UsersController < ApplicationController
def index
@users = current_user.relevant_members
end
end
код в пользовательской модели
def relevant_members
group_ids = self.group_ids
user_ids = Membership.select("user_id").where("group_id IN (#{group_ids.join(", ")})")
User.find(user_ids)
end
Я не понимаю, почему при тестировании в консоли user_ids - это не массив идентификаторов, а следующий массив:
[#<Membership user_id: 2>, #<Membership user_id: 2>, #<Membership user_id: 3>, #<Membership user_id: 3>, #<Membership user_id: 3>, #<Membership user_id: 2>]
Что было бы лучшим способом вернуть массив идентификаторов пользователей, чтобы найти всех соответствующих членов группы?