PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Exibir o último filho na iteração do React


Você pode tentar o seguinte:
Message.where(to: current_user.id)
       .order(:created_at)
       .group_by(&:user_id)
       .map{|_, x| x.last}

Isso deve dar a última mensagem (por created_at ) de cada user_id .

Contanto que você esteja usando o Postgresql, você pode tentar distinct on abordagem:
Message.where(to: current_user.id)
       .order(user_id: :asc, created_at: :desc)
       .select('distinct on (user_id) *')