轨道:可以始终激活隐藏范围



我正在创建一些模型,以便更轻松地从我无法控制的数据库中提取数据。我有一个模型Dataset.我只关心Dataset.where(type: 'set')的条目.

我知道我可以做一个范围来做到这一点。

class Dataset < ActiveRecord::Base
  scope :set, ->{ where(type: 'set') }
end

我想知道是否有可能始终应用范围。这意味着我可以调用Dataset.all并实际获取类型为"set"的条目。是否有可能像这样始终激活和隐藏范围?

谢谢你的时间!

您正在寻找default_scope

如果我们希望将范围应用于对模型的所有查询 我们可以在模型本身中使用default_scope方法

class Dataset < ActiveRecord::Base
  default_scope { where(type: 'set') }
end

最新更新