Tengo un modelo simpleCómo hacer uniones en subconsultas en AREL dentro de los carriles
class User
has_many :logs
class Logs
relacionados de la forma habitual a través de la logs.user_id clave externa. Intento hacer lo siguiente con Arel y, de acuerdo con el documento de Arel, debería funcionar.
u_t = Arel::Table::new :users
l_t = Arel::Table::new :logs
counts = l_t.
group(l_t[:user_id]).
project(
l_t[:user_id].as("user_id"),
l_t[:user_id].count.as("count_all")
)
l_t.joins(counts).on(l_t[:id].eq(counts[:user_id]))
Cuando lo hago me sale el error
TypeError: Cannot visit Arel::SelectManager
Sin embargo, el autor de Arel explicitly suggests que Arel puede hacer este tipo de cosas.
No escribo respuestas sobre cómo puedo lograr la misma consulta con sql en bruto, otro tipo de consulta Arel, etc. Es el patrón que me interesa no los resultados específicos de esta consulta.
'l_t [: id] .eq (counts [: user_id]) '¿funciona esto? Quiero decir, ¿por qué el ID de un registro debe ser igual al ID del usuario? –