我在使用mongomapper范围连接时遇到了奇怪的行为。
下面是一个例子。
我有两个范围:
scope :active, where(
:name =>
{
:$in =>
Model2.active.distinct(:city)
}
)
scope :by_htype_id, lambda{|htype_id|
where(
:name =>
{
:$in =>
Model2.by_htype_id(htype_id).distinct(:city)
}
)
}
如果我跑
Model1.by_htype_id("some_id")
按预期工作
但如果我连接两个范围Model1.active.by_htype_id("some_id")
,我会从活动范围获取所有结果,而我希望获得依赖于by_htype_id的活动范围的子集
修改 如果我将范围的串联编写为单个查询,它将按预期工作。我希望串联能够导致两个范围的结合。正如我所说的那样,我只是连接一些范围,而不是每个范围。