查询空Datamapper有n个关系

时间:2011-04-08 22:55:53

标签: ruby-on-rails datamapper

在我的Rails应用程序中,我有两个模型:简报和公司。简报有n,:公司,:通过=>资源和公司有n,:简报,:through =>资源。

我正试图找到所有没有任何公司与之关联的简报。由于代码不正确,这可能类似于:

Briefing.all( :companies => nil )

Briefing.all( :companies.eql => [] )

但当然那些不起作用。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

我相信Dan pushed a change可以运行这样的查询。因此,如果你有一个User.has n,:posts并运行如下查询:

User.all(:posts => nil)

然后生成的SQL将如下所示:

SELECT "id" FROM "users" WHERE NOT("id" IN (SELECT "user_id" FROM "posts")) ORDER BY "id"

这将在DataMapper 1.1.1中提供

答案 1 :(得分:0)

原来答案就是这个问题:Get the inverse of a join?效果很好。