Rails 具有 has_many、through、class_name 和 where 子句的模型关联
Rails Model Associations with has_many, through, class_name and where clause
寻求与 rails 协会的一点帮助。我有三个模型。用户、与会者和会议,我想 return 一个用户根据他们的角色(在与会者模型下)参加会议。但是我不知道如何 return 使用 where 子句的用户。
我的代码目前 return 是 Attendee
然后我查找 User
object 但如果有我能做到的方法我会喜欢它return User
object 调用后无需查找。
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
这可能吗?非常感谢任何输入。
我不确定我是否理解正确。您尝试过这个吗?这是您需要的吗?
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
寻求与 rails 协会的一点帮助。我有三个模型。用户、与会者和会议,我想 return 一个用户根据他们的角色(在与会者模型下)参加会议。但是我不知道如何 return 使用 where 子句的用户。
我的代码目前 return 是 Attendee
然后我查找 User
object 但如果有我能做到的方法我会喜欢它return User
object 调用后无需查找。
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
这可能吗?非常感谢任何输入。
我不确定我是否理解正确。您尝试过这个吗?这是您需要的吗?
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