मुझे नहीं पता कि आप most_recent_chat_received_from_connected_users
को कैसे कॉल कर सकते हैं , जो आपके Conversation
. का एक उदाहरण तरीका है क्लास, User
. के उदाहरण पर त्रुटि प्राप्त किए बिना, लेकिन मैं वार्तालाप मॉडल में एक कस्टम खोजक जोड़ूंगा:
class Conversation < ActiveRecord::Base
# ...
def self.most_recent_for(user_id)
select('DISTINCT ON (sender_id) *').where(reciever_id: user_id).order("sender_id, created_at DESC")
end
# For MySQL you could have used:
#
# def self.most_recent_for(user_id)
# where(reciever_id: user_id).group("sender_id").order("created_at DESC")
# end
# ...
end
अब आप अपने नियंत्रक में वांछित वार्तालाप प्राप्त कर सकते हैं:
@conversations = Conversation.most_recent_for(current_user.id)