0
class ConferenceSession < ActiveRecord::Base 

    has_many :conference_sessions 

end 


class ConferenceSession < ActiveRecord::Base 

    belongs_to :conference 

    has_and_belongs_to_many :users 

end 

class User < ActiveRecord::Base 

    has_and_belongs_to_many :conference_sessions 

end 

및 conference_sesssions_users 테이블. 관리자는 특정 사용자가 특정 세션에 참석하도록 허용 할 수 있습니다. 따라서 사용자가 로그인하고 회의를 선택할 때마다 관리자가 허용 한 세션 만 볼 수 있도록 허용해야한다는 쿼리를 구성하려고합니다.조건에 따른 레일스 연결 쿼리

나는

scope :visibility, 
    lambda { |user_id| joins('INNER JOIN conference_sessions_users 
           ON conference_sessions_users.conference_session_id = conference_sessions.id'). 
           where('conference_sessions_users.user_id = ?', user_id) } 

를 수행하여 특정 세션을 얻기 위해 이런 짓을했지만 이것은 단지 세션이 모든 사용자에게 표시하는 경우, 조건이 동일 무엇을해야 어떤 특정 사람들을 반환 .

답변

0

where(conference_sessions_users: { user_id: user_ids})으로 변경하면 WHERE conference_sessions_users.user_id in (1st_id, 2nd_id)과 같이 변환됩니다. 물론 병합 사용하는 것이 경우가 user_id