Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails的作用域包含一个集合_Ruby On Rails_Ruby_Mongoid - Fatal编程技术网

Ruby on rails Rails的作用域包含一个集合

Ruby on rails Rails的作用域包含一个集合,ruby-on-rails,ruby,mongoid,Ruby On Rails,Ruby,Mongoid,我在一个项目上工作,我进入了一个我不知道的范围使用。 我有这两个定义: Class Mymodel scope :active, where({ active: true }) Class SecondModel has_many :mymodel 然后我使用它们,就像: instance_var = SecondModel.new instance_var.mymodels.active 我的问题是这是否是一个好的方法 既然作用域与类方法等效,它是如何工作的? 我将mongoid用于数据

我在一个项目上工作,我进入了一个我不知道的范围使用。 我有这两个定义:

Class Mymodel
scope :active, where({ active: true })

Class SecondModel
has_many :mymodel
然后我使用它们,就像:

instance_var = SecondModel.new
instance_var.mymodels.active
我的问题是这是否是一个好的方法 既然作用域与类方法等效,它是如何工作的? 我将mongoid用于数据库部分

因为
instance\u var.mymodels
可以是
Mongoid::Criteria
实例

因此,它可以接受
Mymodel
的所有范围

现在,
ActiveRecord
中作用域和类方法之间的实际区别在于作用域必须返回一个关系

以这种方式使用关系和作用域是没有问题的,实际上这是非常合乎逻辑的,这是我们通常使用它们的方式