如何请求n-n关联rails 4.0



我有两个实体:战斗机,状态,它是一个n <-> n关联。

所以我有另一个表"战斗状态"。

我如何在rails 4.0中编写sql:"我想要所有战斗机,其中不具有状态X"(其中X是status_id)?

I have find:

"Fighter.all.where("id NOT IN (SELECT fighter_id FROM fighter_statuses WHERE fighter_statuses.fighter_id = fighters.id AND status_id = #{X})")

却存在更好的方式?

thx .

你正在使用Rails 4,所以你可以去where.not如下:

Fighter.joins(:statuses).where.not('fighter_statuses.status_id = ?', X)

最新更新