ActiveRecord: подсчет ассоциаций - PullRequest
1 голос
/ 18 января 2011

У меня есть две таблицы с отношением has_one <-> own_to: 'user' и 'account'. (У учетной записи должен быть пользователь, но у пользователя не должно быть учетных записей).

Что я хотел бы сделать, так это вернуть всех пользователей, у которых нет учетных записей ... и у меня возникли небольшие проблемы с выполнением этого изящно. Есть ли простой способ сделать это?

Большое спасибо ...

1 Ответ

5 голосов
/ 18 января 2011

Вы должны присоединить таблицу учетных записей к таблице пользователей, а затем проверить пустую учетную запись.В Rails 3 вы можете сделать это так:

User.includes(:account).where('accounts.id' => nil).all

В Rails 2 вы можете сделать это так:

User.find(:all, :include => [ :account ], :conditions => { 'accounts.id' => nil })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...