EjemploAsociación ActiveRecord seleccionar el recuento de registros incluidos
class User
has_many :tickets
end
quiero crear asociación que contiene la lógica de las entradas de conteo de usuario y utilizarlo en incluye (usuario ticket_count has_one)
Users.includes(:tickets_count)
Probé
has_one :tickets_count, :select => "COUNT(*) as tickets_count,tickets.user_id " ,:class_name => 'Ticket', :group => "tickets.user_id", :readonly => true
User.includes(:tickets_count)
ArgumentError: Unknown key: group
En este caso, la consulta de asociación en include debe usar c ount with group by ... ¿Cómo puedo implementar esto usando rieles?
actualización
- No puedo cambiar la estructura de tablas
- quiero generar AR 1 consulta para la recogida de los usuarios incluye
Update2
que sé SQL y sé cómo seleccionar esto con join, pero mi pregunta ahora es como "Cómo obtener datos". Mi pregunta es sobre la construcción de asociación que puedo usar en incluye. Gracias
Update3 Intenté crear asociación creada como ticket_count has_one usuario, pero
- parece has_one no soporta las extensiones de asociación
- has_one no soporta: opción del grupo
- has_one no es compatible con finder_sql
carriles 3.2 me da ArgumentError: Clave desconocida: sql – Fivell
has_one tiene las siguientes opciones [: class_name,: foreign_key,: select,: conditions,: include,: extender,: readonly,: validate,: remote,: dependent,: counter_cache, : primary_key,: inverse_of,: order,: as,: autosave] – Fivell
@Fivell, actualizó la respuesta. Se suponía que debía usar 'finder_sql' en lugar de' sql'. He actualizado mi respuesta, eche un vistazo. –