Busque registros con más de una asociación ActiveRecord HABTM
-
03-07-2019 - |
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.
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