class Users < ActiveRecord::Base
has_many :meetings, :through => :meeting_participations
has_many :meeting_participations
end
class Meetings < ActiveRecord::Base
has_many :users, :through => :meeting_participations
has_many :meeting_participations
end
class MeetingParticipations < ActiveRecord::Base
belongs_to :user
belongs_to :meeting
scope :hidden, where(:hidden => true)
scope :visible, where(:hidden => false)
end
hidden
是m2m关联表中的一个额外的布尔列。鉴于某些Users
情况current_user
,我想做
current_user.meetings.visible
它将检索Meetings
该hidden
列所在的用户是其参与者的集合false
。我得到的最接近的是将以下范围添加到Meetings
类中
scope :visible, joins(:meeting_participations) & MeetingParticipation.visible
在scope
不过滤Meetings
对MeetingParticipations
表,但有没有加入/条件对MeetingParticipations
相关表格current_user
。
与此问题是,如果current_user
和another_user
是两个参与者对于一些Meetings
例如,Meetings
结果集中的记录将针对已每个参与者返回hidden
设置false
。如果current_user
已true
设置hidden
为所有Meetings
,如果another_user
在任何一个具有相同的会议的参与者hidden
设置为false
,那些Meetings
将出现在Meetings.visible
结果集。
是否可以有一个如上所述的作用域,该作用域可以正确地加入User
实例?如果没有,有人可以推荐解决方案吗?