MongoID链接和范围

时间:2016-11-07 12:10:46

标签: ruby-on-rails mongodb mongoid

我在整个Rails项目中使用MongoID。我基本上有一个像

这样的查询
def available_skus
  skus.is_active.in_stock.order_by({:discount => :desc}, {:quantity => :desc})
end

它部分指我的Sku模型中的嵌入式集合范围。

我在那里有以下范围

scope :is_active, -> { where(:status => true) }
scope :in_stock,  -> { any_of({:unlimited => true}, {:quantity.gt => 0}) }
scope :can_buy,   -> { is_active.in_stock }

我创建can_buy以避免重复,因为我经常使用is_active.in_stock并且它具有特定含义; 你可以买这个sku

简而言之,如果我写skus.is_active.in_stock它可以完美地运行并得到一些结果,但是如果我使用 skus.can_buy 那么它就没有结果。

我不明白这里的行为。不是can_buy是另外两个范围的简单快捷方式吗?

0 个答案:

没有答案