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
中作用域和类方法之间的实际区别在于作用域必须返回一个关系
以这种方式使用关系和作用域是没有问题的,实际上这是非常合乎逻辑的,这是我们通常使用它们的方式