मैं DISTINCT ON
. के उपयोग के साथ एक कार्यात्मक समाधान पर पहुंचा :
@messages = Message.select("DISTINCT ON (messages.conversation_id) * ")
.where("messages.sender_id = (?) OR messages.recipient_id = (?)", current_user.id, current_user.id)
.group("messages.conversation_id, messages.updated_at, messages.id, messages.sender_id, messages.recipient_id, messages.sender_deleted, messages.recipient_deleted, messages.body, messages.read_at, messages.ancestry, messages.ancestry_depth, messages.created_at")
हालांकि, यह SQLite में काम नहीं करेगा। विकास में SQLite कोड का उपयोग करने के बजाय Postgres को डाउनलोड करना और सीधे इसका उपयोग करना और उत्पादन में Postgres कोड (Heroku) की अनुशंसा की जाती है।