如何使用n-n关联rails 4.0

时间:2014-03-29 21:36:27

标签: sql ruby-on-rails ruby-on-rails-4

我有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。

1 个答案:

答案 0 :(得分:1)

您正在使用Rails 4,因此您可以转到where.not,如下所示:

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