我不确定我是否完全理解主动记录查询,但是我遇到了一个非常奇怪的问题,即我的主动记录条件似乎是在我当前范围之外的项目。以下是我所看到的一个例子:
在Rails 2.3控制台中
>> Transaction.single_card.find(:all).map(&:id)
=> [0, 1, 2, 3, 4, 5]
>> Transaction.single_card.find(:all, :conditions => "cards.number = '1234'").map(&:id)
=> [9]
<this line added because the [9] was being cut in half by scroll bar>
这是怎么回事?为什么,当我在查询中添加额外条件时,是否应该提取一个根本不应该存在的记录?根据我的理解,额外的条件应该检查事务0..5(使用单张卡的交易)并查看卡号是否为1234.但查询提取事务9,其中有2张卡与之关联,这就是为什么它没有出现在初始查询中。发生了什么事?
额外注意:名为scope的single_card:包括卡片参考