我有一个do {
Scanner in = new Scanner(System.in);
String userInput = "Input your number: ";
System.out.println(userInput);
} while (in.hasNextInt() || in.hasNextDouble());
表和一个Convo
表,它们都与GroupMeeting
表相关联。
我想找到current_user包含带有msgs的convos或group_meetings的所有实例,将两者合并,然后按照最后一个msg.created_at的顺序一起显示给用户
我在这里定义了两个:
Msg
然后将它们组合在一起:
@convos = Convo.includes(:msgs).where("sender_id = ? OR recipient_id = ?", current_user, current_user).where.not(:msgs => { :id => nil }).merge(Msg.order(created_at: :desc))
@group_meetings = current_user.group_meetings.includes(:msgs).where.not(:msgs => { :id => nil }).merge(Msg.order(created_at: :desc))
我无法弄清楚现在如何通过msg.created_at
对它们进行排序我尝试了以下内容:
@convos = @convos + @group_meetings
这些似乎都是服务器端排序。在创建数组后,如何根据连接表对这些进行排序?
如果我需要提供任何其他详细信息,请告诉我。谢谢!!
答案 0 :(得分:1)
您可以尝试以下操作:
(@convos + @group_meetings).sort_by { |item| item.msgs.minimum(:created_at) }