【发布时间】:2017-04-07 08:36:55
【问题描述】:
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_session_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) }
但这只会返回特定的人,如果会话对所有用户可见怎么办,相同的条件应该是什么。
【问题讨论】:
标签: ruby-on-rails activerecord associations rails-activerecord