You're right, but in this case this test is correct because `Treasure` is the `base_class` of `HiddenTreasure`. This shows the limitation of this test and I/we should probably add another test that handles multiple different base objects. The predicate builder as it stands is too limited to do this and I've been chomping at the bit to refactor it. I'm hesitant to go too far with this patch when it's not even clear that rails wants to support this behavior.

The alternative is saying that arrays of objects that are not of the same base type just can't be sent as arguments, but this feels like an arbitrary requirement.