Запрос пустого Datamapper имеет n отношений - PullRequest
2 голосов
/ 09 апреля 2011

В моем приложении Rails у меня есть две модели: Брифинг и Компания. У брифинга есть n,: companies,: through => Ресурс, а у компании n:: брифинги,: through => ресурс.

Я пытаюсь найти все брифинги, у которых нет компаний, связанных с ними. Как неправильный код это может выглядеть примерно так:

Briefing.all( :companies => nil )

или

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

но, конечно, они не работают. Есть мысли?

Ответы [ 2 ]

1 голос
/ 09 апреля 2011

Я считаю, что Дэн просто выдвинул изменение , которое позволяет выполнить такой запрос. Так что, если у вас есть 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

0 голосов
/ 11 апреля 2011

Оказывается, ответ на этот вопрос SO: Получить обратное объединение? , который работает довольно хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...