我不确定如何在没有错误的实例上调用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)