Pregunta

Tengo dos modelos, unidos por una tabla de combinaciones Has y Belongs To Many. Llamemos a estos modelos Usuario y Evento. La mayoría de los usuarios tienen 0 eventos, mientras que pocos tienen uno o más. Quiero hacer algo como:

User.find (: all,: joins = >: events,: conditions = > [" 'Algo que cuenta los eventos' >? "], 0)

El problema es que no estoy seguro de cómo seleccionar solo los usuarios que tienen 1 o más eventos asociados.

¿Fue útil?

Solución

He encontrado la respuesta:

User.find(:all, :joins => :events, :select => 'DISTINCT `users`.*')

Básicamente, users . * restringe el conjunto de resultados solo a la tabla de usuarios, y la palabra clave DISTINCT se asegura de que cada usuario solo vuelva una vez.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top