我有两个实体:战斗机,状态,它是一个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)