我正在创建一些模型,以便更轻松地从我无法控制的数据库中提取数据。我有一个模型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