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テーブル。管理者は、特定の人に特定のセッションに参加させることができます。だから私は、ユーザがログインして会議を選択するたびに、管理者が許可したセッションだけを見ることを許可されるべきであるというクエリを作成したいと思う。条件に基づくRails関連付けクエリ

私は

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

関連する問題