आप निम्न कोशिश कर सकते हैं:
Message.where(to: current_user.id)
.order(:created_at)
.group_by(&:user_id)
.map{|_, x| x.last}
यह अंतिम संदेश देना चाहिए (created_at
. द्वारा) ) प्रत्येक user_id
. से ।
जब तक आप Postgresql का उपयोग कर रहे हैं, तब तक आप distinct on
try आज़मा सकते हैं दृष्टिकोण:
Message.where(to: current_user.id)
.order(user_id: :asc, created_at: :desc)
.select('distinct on (user_id) *')