Dou*_*ish 2 scope ruby-on-rails mongodb mongoid
我正在使用Rails 3和Mongoid.
我有一个Folder类,然后可以与其他User类共享
class Folder
has_one :owner
has_many :users
Run Code Online (Sandbox Code Playgroud)
我正在尝试创建两个范围,一个可用于返回所有私人文件夹,另一个用于返回所有共享文件夹.有没有办法计算范围内的关联数量?
scope :personal, where(:users.count => 0) #Erroring on count...
scope :shared, where(:users.count.gt => 0) #Erroring on count...
Run Code Online (Sandbox Code Playgroud)
我已经考虑过构建方法,但我更喜欢使用范围,因为我希望将它们与其他范围链接起来.
由于您正在访问引用的文档 - 您的users方法是一个虚拟属性,在查询期间无法访问该属性.但是,您可以使用user_ids(文档中的Userid 数组Folder)来执行所需的各种查询:
这些中的任何一个都适用于您的个人范围:
scope :personal, where(:user_ids.size => 0)
# or
scope :personal, where(:user_ids => [])
Run Code Online (Sandbox Code Playgroud)
对于您的共享范围:
scope :shared, where(:user_ids.ne => [])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1586 次 |
| 最近记录: |