Ordenar registros de modelos en función de los valores en el modelo relacionado

2023-01-25 04:21:28

Actualmente clasifico los registros de miembros usando en el archivo modelo de miembros:

default_scope -> { order(:organization_id, :username) }

Las organizaciones y los miembros tienen una relación de 1:muchos. En lugar de ordenar sobre la base de organization_id, me gustaría ordenar a los miembros según el nombre de la organización, que es una columna en el modelo de organización. ¿Cómo debo hacer esto?

Probé las siguientes líneas pero esto no funciona; solo parece aceptar variables dentro del mismo modelo y no de modelos con los que tiene relación.

default_scope -> { order(:organization.name, :username) }
default_scope -> { order(organization.name, :username) }

- Nick

Source
zh
Responder


0
  • Usar .includes

    default_scope -> { includes(:organization).order('organizations.name , username') }