Encontrar registros com mais de um ActiveRecord HABTM Association
-
03-07-2019 - |
Pergunta
Eu tenho dois modelos, unidos por uma tem e pertence a muitos unir a tabela. Vamos chamar estes modelos usuário e Evento. A maioria dos usuários têm 0 eventos, enquanto alguns têm um ou mais. Eu quero fazer algo como:
User.find (: all,: joins =>: eventos,: conditions => [ " 'Algo que contar os eventos' >?"], 0 )
O problema é, eu não tenho certeza de como selecionar apenas os usuários que têm 1 ou mais eventos associados.
Solução
Eu encontrei a resposta:
User.find(:all, :joins => :events, :select => 'DISTINCT `users`.*')
Basicamente, o users
. * Restringe o conjunto de resultados apenas para a tabela de usuários, ea palavra-chave DISTINCT torna-se cada usuário só é devolvido uma vez.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow