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)