사용자, 멤버십 및 그룹 모델이 있습니다. 사용자는 많은 멤버쉽을 가지고 있으며 멤버쉽을 통해 그룹화됩니다. 그룹에는 많은 멤버쉽이 있고 멤버쉽을 통해 사용자가 있습니다. 멤버십은 둘 다에 속합니다.활성 레코드 쿼리 모델 'select'및 'where'을 사용하여 배열 결과
사용자가 사용자 인덱스보기에 액세스 할 때 사용자가 속한 그룹에 속한 모든 사용자를 표시하려고합니다. 작동하지 않는 다음 코드를 생성했습니다. 쿼리를 작동시킬 수없는 것 같습니다. 피스 도움말!
Users (사용자) 컨트롤러의 코드
class UsersController < ApplicationController
def index
@users = current_user.relevant_members
end
end
콘솔에서 테스트 할 때, user_ids는 ID의 배열이 아닌 이유
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
내가 이해하지 못하는 사용자 모델의 코드 다음 배열이 있습니다.
[#<Membership user_id: 2>, #<Membership user_id: 2>, #<Membership user_id: 3>, #<Membership user_id: 3>, #<Membership user_id: 3>, #<Membership user_id: 2>]
사용자 ID 배열을 반환하는 더 좋은 방법은 무엇입니까? 모든 관련 그룹 회원을 찾으십니까? 당신의 user_ids
클래스 Membership
의 목적은 따라서 당신의 배열을 얻을 수 없기 때문에