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.

Foi útil?

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
scroll top