寻找rails关联的一点帮助。我有三个型号。用户,参加者和会议,我想根据他们的角色(在参与者模型下)返回参加会议的用户。但是,我无法弄清楚如何使用where子句返回用户。
我的代码目前返回Attendee
,然后我查找User
对象,但如果有我可以让它返回User
对象而不必在通话结束后查一查。
class Meeting
has_one :owner, -> { where role: 'owner' }, class_name: 'Attendee'
has_one :mentor, -> { where role: 'mentor' }, class_name: 'Attendee'
has_many :mentees, -> { where role: 'mentee' }, class_name: 'Attendee'
end
我拥有的其他协会如下
has_many :users, through: :attendees
has_many :attendees, dependent: :destroy
这可能吗?任何输入都非常感谢。
答案 0 :(得分:0)
我不确定我是否正确理解你。你试过这个,这就是你需要的吗?
class Meeting
has_one :owner, -> { where role: 'owner' }, class_name: 'Attendee'
has_one :mentor, -> { where role: 'mentor' }, class_name: 'Attendee'
has_many :mentees, -> { where role: 'mentee' }, class_name: 'Attendee'
has_one :owner_user, through: :owner, source: :user
has_one :mentor_user, through: :mentor, source: :user
has_many :mentees_users, through: :mentees, source: :user
end