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
und einem conference_sesssions_users Tisch. Der Administrator kann bestimmten Personen erlauben, an einer bestimmten Sitzung teilzunehmen. Daher möchte ich eine Abfrage erstellen, dass, wenn sich ein Benutzer anmeldet und eine Konferenz auswählt, er nur die Sitzungen sehen darf, die ihm der Administrator erlaubt hat.Rails Verein Abfrage basierend auf Zustand
Ich habe das
, indem Sie die spezifische Sitzung zu erledigenscope :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) }
aber dies gibt nur die spezifischen Menschen, was ist, wenn die Sitzung für alle Benutzer sichtbar ist, was sollte die Bedingung für die gleiche sein .