我有一个与 Pokemon 有 has_many 关系的 Trainer 模型。我如何找到所有没有特定类型或类型的口袋妖怪的所有训练师(类型是口袋妖怪模型中的一列)?
我尝试过的代码,但是如果他的任何口袋妖怪类型不在组中,它会返回一个教练(例如,如果一个教练有火和电类型的口袋妖怪,他将被返回,因为电不在阵列中。我不不希望他回来,因为他有火系口袋妖怪。)
Trainer.joins(:pokemons).where("pokemons.type NOT IN (?)", ["fire","grass","water"])
当我只与一种类型进行比较时,也会出现同样的问题。
Trainer.joins(:pokemons).where("pokemons.type != ?", "fire")
同样,示例训练师将被退回,因为他有一个类型为电动的口袋妖怪,不等于火。
我正在使用 Rails 3.2.13 和 Ruby 1.9.3。