我有2个实体:战斗机,状态,它是一个n< - > n协会。
所以我有另一张桌子“fighter_status”。
如何在rails 4.0中写入以下内容:“我希望所有战斗机没有状态X”(其中X是status_id)?
我找到了:
"Fighter.all.where("id NOT IN (SELECT fighter_id FROM fighter_statuses WHERE fighter_statuses.fighter_id = fighters.id AND status_id = #{X})")
但存在更好的方法吗?
THX。
答案 0 :(得分:1)
您正在使用Rails 4,因此您可以转到where.not
,如下所示:
Fighter.joins(:statuses).where.not('fighter_statuses.status_id = ?', X)