Tôi không chắc làm thế nào bạn có thể gọi most_recent_chat_received_from_connected_users , là một phương thức phiên bản của Conversation của bạn lớp, trên một bản sao của User mà không gặp lỗi, nhưng tôi sẽ thêm một công cụ tìm tùy chỉnh vào mô hình Hội thoại:
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
Giờ đây, bạn có thể nhận được các cuộc trò chuyện mong muốn trong bộ điều khiển của mình với:
@conversations = Conversation.most_recent_for(current_user.id)